当前位置: 首页 > 面试题库 >

Java如何用字符串中的单个空格替换2个或更多空格并删除前导和尾随空格

严言
2023-03-14
问题内容

在Java中寻找快速,简单的方法来更改此字符串

" hello     there   "

看起来像这样

"hello there"

在这里,我用一个空格替换了所有多个空格,但我也希望字符串开头的一个或多个空格消失。

这样的事情使我部分地在那里

String mytext = " hello     there   ";
mytext = mytext.replaceAll("( )+", " ");

但不完全是


问题答案:

尝试这个:

String after = before.trim().replaceAll(" +", " ");

也可以看看
- String.trim()
- 返回字符串的副本,省略前导和尾随空格。
- Regular-expressions.info/重复


没有trim()正则表达式

也可以只用一个执行此操作replaceAll,但这比trim()解决方案的可读性差得多。尽管如此,这里提供它只是为了显示正则表达式可以做什么:

    String[] tests = {
        "  x  ",          // [x]
        "  1   2   3  ",  // [1 2 3]
        "",               // []
        "   ",            // []
    };
    for (String test : tests) {
        System.out.format("[%s]%n",
            test.replaceAll("^ +| +$|( )+", "$1")
        );
    }

有3个备用项:

  • ^_+:字符串开头的任意空格序列
  • 匹配并替换为$1,以捕获空字符串
  • _+$ :字符串末尾的任意空格序列
  • 匹配并替换为$1,以捕获空字符串
  • (_)+ :任何不符合上述条件的空格序列,表示它位于中间
  • 匹配并替换为$1,以捕获单个空格


 类似资料:
  • 问题内容: 该函数会删除尾部和前导空格,但是,如果我只想删除字符串的尾部空格,该怎么办? 问题答案: 如果您使用的是JDK 11或更高版本,则可能应该使用stripTrailing()。 早期的JDK版本 使用正则表达式,您可以将所有尾随空格字符(包括空格和制表符)替换为空字符串()。 输出量 在线演示。 这是正则表达式的细分: –任何空白字符, –匹配一个或多个先前的令牌(可能);即,匹配一个或

  • 问题内容: 我的字符串带有多余的空格,每当有多个空格时,我希望它只有一个。 任何人?我尝试搜索Google,但没有任何帮助。 谢谢 问题答案: 像这样:

  • 问题内容: 我很难尝试将.strip与以下代码行结合使用。 谢谢您的帮助。 问题答案: 您可以使用strip()删除尾随和前导空格。 注意:内部空间被保留

  • 问题内容: 是否有一种方便的方法来从Java字符串中剥离任何前导或尾随空格? 就像是: 结果: 将替换keep和this之间的空间。 问题答案: 你可以尝试trim()方法。

  • 问题内容: 我有一个包含两个字段(国家和ISO代码)的表: 在某些行中,第二个字段在开头和/或结尾处都有空格,这会影响查询。 有没有一种方法(在SQL中)遍历表并查找/替换field2中的空格? 问题答案: 您正在寻找TRIM。

  • 问题内容: 我正在尝试用一个空格替换多个空格。使用时,我会收到关于它已过时的错误消息。 是否有相同的替代品。我需要用单个空格替换多个空格和多个空格。 问题答案: 使用和代替使用: 从正则表达式基本语法参考]: \ d,\ w和\ s 速记字符类,用于匹配数字,单词字符(字母,数字和下划线)和空格(空格,制表符和换行符)。可以在字符类的内部和外部使用。