如何在替换字符串中的子字符串后获取新字符串的正确长度。我使用了字符串长度并获得了第一个字符串的长度。 即。 我的字符串是" abcdefg"并且长度为7.更换" cde"使用" z",新字符串是abzfg(通过使用replace all),如果我使用字符串长度,则新字符串的长度仍为7。我可以通过任何方法获得正确的长度5吗?
答案 0 :(得分:2)
将新字符串保存在新变量中。然后检查长度。
String s = a.replace(...);
int newLength = s.length;
答案 1 :(得分:0)
在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);
答案 2 :(得分:0)
String在Java中是不可变的。你无法改变它们。
您需要使用另一个String或使用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");
答案 3 :(得分:0)
我刚刚为上述问题运行了代码,它正在产生正确的输出,
即5.确保您已写完: -
str=str.replaceAll("cde","z");
而不仅仅是
str.replaceAll("cde","z");
(因为Java中的String类是不可变的)