繁体   English   中英

Java中字符串的字符替换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM