[英]Character Replacement in a String in Java
目前,我有一个字符串数组,每个字符串都有随机字符,长度随机。 我想用“X”替换每个“A”,我怎么会这样做呢?
例:
String str = "ABCDEFGAZYXW";
我希望String变为"XBCDEFGXZYXW"
。 我试着用:
str.replaceAll("A", "X");
但它不会改变字符串。 任何帮助是极大的赞赏!
str = str.replaceAll("A", "X");
replaceAll
方法不会更改字符串(Java中的字符串是不可变的),但会创建一个新的String
对象,并在函数调用的结果中返回它。 通过这种方式,我们更改了对新对象的引用,其中旧对象未更改但只是未引用。
Java中的字符串是不可变的,你使用replaceAll()
就在正确的轨道上,但你必须保存方法返回的新字符串,例如在原始字符串中(如果你不介意修改它)。 我的意思是:
String str = "ABCDEFGAZYXW";
str = str.replaceAll("A", "X"); // notice the assignment!
只需用另一个字符替换单个字符,就可以使用replace
:
str = str.replace('A', 'X');
正如许多其他人已经发布了String.replaceAll
也可以工作,但你应该知道这个方法的第一个参数是一个正则表达式 。 如果你没有意识到这一点,那么在所有情况下它都可能无法正常工作:
// Replace '.' with 'X'.
str = str.replaceAll(".", "X"); // Oops! This gives "XXXXXXXXXXXX"
你必须分配结果,即:
str = str.replaceAll("A", "X");
尝试str = str.replaceAll(“A”,“X”);
字符串在Java中是不可变的。
基本上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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.