Java字符串方法,用单个空格替换2个或更多空格的所有序列
我试图用一个空格替换字符串中两个或更多空格的所有序列
我已经用绳子把它弄到手了。修剪()。replaceAll(“+”,“”)方法
但我试着用我所知道的自己去弄清楚,我走近了,想知道是否有人能解决我的问题,让它工作
以下是我所尝试的:
StringBuilder sampleTextBuilder = new StringBuilder(sampleText);
for (int i = 0; i < sampleTextBuilder.length(); i++) {
if (Character.isLetter(sampleTextBuilder.charAt(i))) {
isLetter = true;
isFirstWS = false;
}
else if (Character.isWhitespace(sampleTextBuilder.charAt(i)) && isLetter) {
isFirstWS = true;
isLetter = false;
}
else if (Character.isWhitespace(sampleTextBuilder.charAt(i)) && isFirstWS) {
sampleTextBuilder.deleteCharAt(i);
}
sampleText = sampleTextBuilder.toString();
}
# 1 楼答案
你真的不需要布尔人。只需跟踪指数即可。请记住,一次删除一个字符是非常昂贵的,因为使用这些
StringBuilder
方法会有相当多的数组复制还有一个微妙之处。当您从头开始迭代并删除字符时,所有字符都会向左移动一个位置。这可能需要额外的簿记。要解决这个问题,您需要从右侧迭代。然后,当您删除一个字符时,它不会影响更靠左的字符的相对位置