这个问题在这里已经有答案了:
java如何用字符串中的单个空格替换2个或多个空格并删除前导空格和尾随空格(29个答案)三年前关门了。
For ex: "__I_love___India___";
在这个字符串中,我想完全删除前导和尾随空格,并在java中删除字符串中的多个空格。i、 e.输出应为" I love India ";
I love India
wj8zmpe11#
尝试 replaceAll("\\s{2,}", " ").trim(); 其中str是一个字符串变量,其中包含要从中去除空白的文本,并使用trim作为前导和尾随空格,因为我忘记了用单个空格替换多个空格,所以由于注解而更新
replaceAll("\\s{2,}", " ").trim();
wtzytmuj2#
试试这个逻辑:
String input = "I love India "; input = input.trim().replaceAll("\\s+", " ");
这里的想法是使用两个单独的操作来处理开头/结尾处的空白和单词之间的空白。我们希望完全删除开头/结尾处的空白,然后 String#trim() 做得很好。然后,单词之间应该只出现一个空格,regex替换将处理这种情况。
String#trim()
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); ...
String after = before.trim().replaceAll("\\s+", " ");
String after = before.replaceAll("\\s{2,}", " ").trim();
String after = StringUtils.normalizeSpace(String str);
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
s6fujrry5#
方法 trim () 删除前导空格和尾随空格。为了删除字符串中间的重复空格,可以使用正则表达式。s2=s1.replaceall(“\s+”,“”).trim();
trim ()
5条答案
按热度按时间wj8zmpe11#
尝试
replaceAll("\\s{2,}", " ").trim();
其中str是一个字符串变量,其中包含要从中去除空白的文本,并使用trim作为前导和尾随空格,因为我忘记了用单个空格替换多个空格,所以由于注解而更新wtzytmuj2#
试试这个逻辑:
这里的想法是使用两个单独的操作来处理开头/结尾处的空白和单词之间的空白。我们希望完全删除开头/结尾处的空白,然后
String#trim()
做得很好。然后,单词之间应该只出现一个空格,regex替换将处理这种情况。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);
...mklgxw1f4#
另一种方法是使用stringtokenizer和一个空格作为标记分隔符。读取每个标记并将其写回stringbuilder。
输出为:
s6fujrry5#
方法
trim ()
删除前导空格和尾随空格。为了删除字符串中间的重复空格,可以使用正则表达式。s2=s1.replaceall(“\s+”,“”).trim();