如何删除前导和尾随处的空格以及字符串中的多个空格?

eni9jsuy  于 2021-07-03  发布在  Java
关注(0)|答案(5)|浏览(508)

这个问题在这里已经有答案了

java如何用字符串中的单个空格替换2个或多个空格并删除前导空格和尾随空格(29个答案)
三年前关门了。

For ex: "__I_love___India___";

在这个字符串中,我想完全删除前导和尾随空格,并在java中删除字符串中的多个空格。
i、 e.输出应为
" I love India ";

wj8zmpe1

wj8zmpe11#

尝试 replaceAll("\\s{2,}", " ").trim(); 其中str是一个字符串变量,其中包含要从中去除空白的文本,并使用trim作为前导和尾随空格,因为我忘记了用单个空格替换多个空格,所以由于注解而更新

wtzytmuj

wtzytmuj2#

试试这个逻辑:

String input = "I love   India    ";
input = input.trim().replaceAll("\\s+", " ");

这里的想法是使用两个单独的操作来处理开头/结尾处的空白和单词之间的空白。我们希望完全删除开头/结尾处的空白,然后 String#trim() 做得很好。然后,单词之间应该只出现一个空格,regex替换将处理这种情况。

flseospp

flseospp3#

您可以尝试以下方法之一:
纯java- String after = before.trim().replaceAll("\\s+", " "); 纯java- String after = before.replaceAll("\\s{2,}", " ").trim(); apache commons语言3- String after = StringUtils.normalizeSpace(String str); ...

mklgxw1f

mklgxw1f4#

另一种方法是使用stringtokenizer和一个空格作为标记分隔符。读取每个标记并将其写回stringbuilder。

import java.util.*;

class Words
{

    /**
     * Convenience method. 
     */
    public static StringBuilder deduplicateSpaces(String text)
    {
        return deduplicateDelimiters(text, " ");
    }

    public static StringBuilder deduplicateDelimiters(String text, String delim)
    {
        StringTokenizer       st = new StringTokenizer(text, delim);
        StringBuilder         sb = new StringBuilder();
        boolean         firstRun = true;

        while (st.hasMoreTokens())
        {
            sb.append(firstRun? "" : delim)  //prevent delimiter on the first token
              .append(st.nextToken()      ); //append token itself
            if (firstRun) { firstRun = false; }
        }

        return sb;
    }

    public static void main (String[] args)
    {
        String textS = "    A     bbbb    ccccc   ";
        String textU = "____A_____bbbb____ccccc___";

        System.out.println(deduplicateSpaces(textS));

        System.out.println(deduplicateDelimiters(textU, "_"));
    }
}

输出为:

A bbbb ccccc
A_bbbb_ccccc
s6fujrry

s6fujrry5#

方法 trim () 删除前导空格和尾随空格。为了删除字符串中间的重复空格,可以使用正则表达式。
s2=s1.replaceall(“\s+”,“”).trim();

相关问题