【问题标题】:How do I remove white-space from the beginning of a string?如何从字符串的开头删除空格?
【发布时间】:2012-10-05 21:56:24
【问题描述】:

如何在 Java 中从字符串的开头删除空格而不从末尾删除?

如果值为:

String temp = "    hi    "

那么我怎样才能只删除前导空白,使其看起来像这样:

String temp = "hi    "

我目前的实现是循环遍历,检查第一个字符并创建一个子字符串,直到达到第一个非空白值。

谢谢!

【问题讨论】:

    标签: java whitespace trim


    【解决方案1】:

    你可以使用:

    temp = temp.replaceFirst("^\\s*", "")
    

    【讨论】:

    • 这不适用于已经没有空格的字符串。它应该是temp.replaceFirst("^\\s*", "");,以便^ 匹配字符串的开头。
    • OP 还需要确保字符串以空格字符开头。
    • ^ 仅在使用String.replaceAll 时才需要。虽然在这里可以正常工作,但String.replaceFirst 不需要它
    【解决方案2】:

    您可以使用 Commons-lang StringUtils stripStart 方法。

    如果你传递 null 它会自动修剪空格。

    StringUtils.stripStart(temp, null);
    

    【讨论】:

      【解决方案3】:

      截至JDK11,您可以使用stripLeading

      String result = temp.stripLeading();
      

      【讨论】:

        【解决方案4】:

        可能接近建议的 Commons-lang StringUtils.stripStart() 方法的实现:

        public static String trimFront(String input) {
            if (input == null) return input;
            for (int i = 0; i < input.length(); i++) {
                if (!Character.isWhitespace(input.charAt(i)))
                    return input.substring(i);
            }
            return "";
        }
        

        【讨论】:

          【解决方案5】:

          公然抄自java2s:

          text = text.replaceAll("^\\s+", "");
          

          ...并使用@Reimus的答案修改:

          text = text.replaceFirst("^\\s+", "");
          

          我不确定最有效的方法; fwiw,我选择了 @Reimus 的原版。

          【讨论】:

            猜你喜欢
            • 2016-09-30
            • 2011-12-22
            • 1970-01-01
            • 1970-01-01
            • 2011-04-08
            • 2011-03-23
            • 1970-01-01
            • 1970-01-01
            • 2013-10-07
            相关资源
            最近更新 更多