替换 Java 中的字符串后的字符串长度?

String length after replacing a string in Java?

如何在替换字符串中的子字符串后获得新字符串的正确长度。我使用了字符串长度并得到了第一个字符串的长度。 IE。 我的字符串是 "abcdefg",长度是 7。将 "cde" 替换为 "z" 后,新字符串是 abzfg(使用全部替换),新字符串的长度仍然是 7,如果我使用字符串长度。我可以通过任何方法获得正确的长度 5 吗?

将新字符串保存在新变量中。然后检查长度。

String s = a.replace(...);
int newLength = s.length;

在 Java 中,字符串是不可变的。 http://www.programcreek.com/2013/04/why-string-is-immutable-in-java/

这意味着您必须保留对字符串对象的替换操作的结果。 (函数不直接修改字符串对象的实际内容)

示例:您可以根据自己的情况执行类似的操作

string s = "abcdefg";
s = s.replace("cde", "");
System.out.println(s.length);

字符串在 Java 中是不可变的。你不能改变它们。

您将需要使用另一个字符串或使用 StringBuilder。

String A = "abcdefg";
String B = A.substring(0,2) + 'z' + A.substring(5,6);

或使用 StringBuilder

StringBuilder A = new StringBuilder("abcdefg");
A.replace(2,5,"z");

我只是 运行 上述问题的代码,它产生了正确的输出,

即 5. 确保你写了 :-

 str=str.replaceAll("cde","z");

不只是

str.replaceAll("cde","z");

(因为Java中的字符串class是不可变的)