目前,我有一个字符串数组,每个字符串都有随机字符,长度是随机的。我想用“X”替换每个“A”,我怎么会这样做呢?
示例:
String str = "ABCDEFGAZYXW";
我希望String变为"XBCDEFGXZYXW"
。我试着用:
str.replaceAll("A", "X");
但它不会改变字符串。非常感谢任何帮助!
答案 0 :(得分:4)
str = str.replaceAll("A", "X");
replaceAll
方法不会更改字符串(Java中的字符串是不可变的),但会创建一个新的String
对象,并在函数调用后返回它。通过这种方式,我们更改了对新对象的引用,其中旧对象未更改但只是未引用。
答案 1 :(得分:3)
Java中的字符串是不可变的,你使用replaceAll()
走在正确的轨道上,但你必须保存方法返回的新字符串,例如在原始字符串中(如果你不介意修改它)。我的意思是:
String str = "ABCDEFGAZYXW";
str = str.replaceAll("A", "X"); // notice the assignment!
答案 2 :(得分:3)
只需将一个字符替换为另一个字符即可使用replace
:
str = str.replace('A', 'X');
许多其他人已发布String.replaceAll
也有效,但您应该知道此方法的第一个参数是正则表达式。如果你没有意识到这一点,那么在所有情况下它都可能无法正常工作:
// Replace '.' with 'X'.
str = str.replaceAll(".", "X"); // Oops! This gives "XXXXXXXXXXXX"
答案 3 :(得分:2)
您必须分配结果,即:
str = str.replaceAll("A", "X");
答案 4 :(得分:2)
尝试 str = str.replaceAll(“A”,“X”);
字符串在Java中是不可变的。
答案 5 :(得分:0)
基本上 replaceAll 函数将带两个参数,一个是要删除的字符串,第二个是要替换的新字符串,其返回类型为String。
更换后会返回新的字符串。
您在这里调用该方法,但不将其新值存储在变量中。 你可以像这样替换或打印
String string = "My Old String with Old value";
System.out.println(string.replaceAll("Old", "New"));
//Or
string = string.replaceAll("Old", "New");
System.out.println(string);
因此,在您的代码中,您应该将其存储在字符串对象中。
str = str.replaceAll("A", "X");