子字符串(java)无法正常工作

时间:2018-12-03 18:47:09

标签: java string replace substring

我有一个代码,应该从字符串中删除2个元素。可以与字母数字一起工作,但是当我输入相同数字的字符串时,即仅输入“ 1”:(111111111),则不返回任何内容或仅返回“ 1”,或者与我的预期完全不同。

这是我的代码:

String str= "222222222";
System.out.println(str.replace(str.substring(3, 5), ""));           }

在这种情况下,返回“ 2”,但是 如果字符串少一个“ 2”,则不返回任何内容

感谢您的帮助:)

1 个答案:

答案 0 :(得分:5)

如果str"222222222",则str.substring(3,5)"22"。因此,您正在呼叫str.replace("22", ""),它会将{strong>每个 "22"替换为""

如果您想删除字符串的一部分,只需使用substring挑选其余部分即可。

System.out.println(str.substring(0,3) + str.substring(5));

或者,StringBuilder有一个delete方法:

StringBuilder sb = new StringBuilder(str);
sb.delete(3,5);
System.out.println(sb);

您可以使用sb.toString()StringBuilder转换回字符串。