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

时间:2016-06-26 18:38:31

标签: java string replace string-length replaceall

如何在替换字符串中的子字符串后获取新字符串的正确长度。我使用了字符串长度并获得了第一个字符串的长度。 即。 我的字符串是" abcdefg"并且长度为7.更换" cde"使用" z",新字符串是abzfg(通过使用replace all),如果我使用字符串长度,则新字符串的长度仍为7。我可以通过任何方法获得正确的长度5吗?

4 个答案:

答案 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类是不可变的)