java:从StringBuilder中删除所有空格的最有效方法是什么

rem*_*emy 3 java

我通过以下代码实现它,但我不知道是否有一种更有效的方法从StringBuilder中删除所有空格

private static StringBuilder removeBlankSpace(StringBuilder sb){
    for(int i=0;i<sb.length();++i){
        if(Character.isWhitespace(sb.charAt(i))){
            sb.deleteCharAt(i);
                            i--;
        }
    }
    return sb;
}
Run Code Online (Sandbox Code Playgroud)

Kei*_*all 10

您不应该delete多次调用- 只需将每个字符向下移动到其最终位置,然后在结尾处删除范围.

static void removeBlankSpace(StringBuilder sb) {
  int j = 0;
  for(int i = 0; i < sb.length; i++) {
    if (!Character.isWhitespace(sb.charAt(i))) {
       sb.setCharAt(j++, sb.charAt(i));
    }
  }
  sb.delete(j, sb.length);
}
Run Code Online (Sandbox Code Playgroud)