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

标签 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;
}

最佳答案

您不应多次调用 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);
}

关于java:从 StringBuilder 中删除所有空格的最有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10275461/

相关文章:

java - RequestMapping 占位符在 JUnit 测试中不起作用

java - 当变量值改变时如何更新JTextField?

java - SocketTimeoutException 在应用程序运行一段时间后不停地出现,但通过重新启动它立即解决

Java/Android : Append multiple strings, 如果字符串为空则跳过

java - Mockito & Junit 空指针异常 : name must not be null

java - 升级到 Spring Boot 2 时缺少 EnableOAuth2Sso 注释

java - 相当于 Grails 中的 chain.doFilter

java - Android,避免在方法中键入其每个属性的对象名称?

java - 使用传真调制解调器调用电话

java检测何时创建或关闭任何窗口