【发布时间】:2012-05-02 22:40:53
【问题描述】:
是否可以用一种类型的字符替换整个字符串?有没有一种方法可以做到这一点?当然是一行。
Example:
"1234567890" turns to "xxxxxxxxxx"
【问题讨论】:
是否可以用一种类型的字符替换整个字符串?有没有一种方法可以做到这一点?当然是一行。
Example:
"1234567890" turns to "xxxxxxxxxx"
【问题讨论】:
你可以使用replaceAll:
String newString = origString.replaceAll(".", "x");
例如,这个:
System.out.println("hello".replaceAll(".", "*"));
输出:
*****
【讨论】:
比replaceAll 更轻量级的解决方案:
char[] chars = new char[origString.length()];
Arrays.fill(chars,'x');
String newString = new String(chars);
哦,对不起,你想要一行:
char[] chars = new char[origString.length()]; Arrays.fill(chars,'x'); String newString = new String(chars);
【讨论】:
是否可以用一种类型的字符替换整个字符串?
不,String 是 immutable,因此无法更改 1,因此您不能将“1234567890”转换为 “xxxxxxxxx”
您可以创建一个新的String 对象,按照@BinyaminSharet 的建议将其替换
(1) 从技术上讲,可以使用 reflection 更改不可变对象 - 但应不惜一切代价避免。
【讨论】: