Java 如何删除前导和尾随处的空格以及字符串中的多个空格?
在这个字符串中,我想完全删除前导和尾随空格,并在java中删除字符串中的多个空格 i、 e.产出应为: “Java 如何删除前导和尾随处的空格以及字符串中的多个空格?,java,string,whitespace,Java,String,Whitespace,在这个字符串中,我想完全删除前导和尾随空格,并在java中删除字符串中的多个空格 i、 e.产出应为: “我爱印度”” 尝试replaceAll(“\\s{2,},”).trim() 其中str是一个字符串变量,包含要从中去除空白的文本,并对前导和尾随空白使用trim 由于我忘了用一个空格替换多个空格而更新了注释请尝试replaceAll(“\\s{2,},”).trim() 其中str是一个字符串变量,包含要从中去除空白的文本,并对前导和尾随空白使用trim 由于我忘了用单个空格替换多个空格,
我爱印度”
” 尝试replaceAll(“\\s{2,},”).trim()代码>
其中str是一个字符串变量,包含要从中去除空白的文本,并对前导和尾随空白使用trim
由于我忘了用一个空格替换多个空格而更新了注释请尝试replaceAll(“\\s{2,},”).trim()代码>
其中str是一个字符串变量,包含要从中去除空白的文本,并对前导和尾随空白使用trim
由于我忘了用单个空格替换多个空格,因此根据注释进行了更新。另一种方法是使用带有空格的StringTokenizer作为标记分隔符。读取每个标记并将其写回StringBuilder
For ex: "__I_love___India___";
输出为:
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, "_"));
}
}
另一种方法是使用带有空格的StringTokenizer作为标记分隔符。读取每个标记并将其写回StringBuilder
For ex: "__I_love___India___";
输出为:
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, "_"));
}
}
方法trim()
删除前导空格和尾随空格。为了删除字符串中间的重复空格,可以使用正则表达式
s2=s1.replaceAll(“\\s+”,”).trim() 方法trim()
删除前导空格和尾随空格。为了删除字符串中间的重复空格,可以使用正则表达式
s2=s1.replaceAll(“\\s+”,”).trim() 试试这个逻辑:
A bbbb ccccc
A_bbbb_ccccc
这里的想法是使用两个单独的操作来处理开头/结尾的空格和单词之间的空格。我们希望完全删除开头/结尾的空白,而String#trim()
很好地做到了这一点。然后,单词之间只应出现一个空格,正则表达式替换将处理这种情况。尝试以下逻辑:
A bbbb ccccc
A_bbbb_ccccc
这里的想法是使用两个单独的操作来处理开头/结尾的空格和单词之间的空格。我们希望完全删除开头/结尾的空白,而String#trim()
很好地做到了这一点。然后,单词之间只应出现一个空格,正则表达式替换将处理这种情况。您可以尝试以下方法之一:
- 纯Java-
String after=before.trim().replaceAll(“\\s+”,”)代码>
- 纯Java-
String after=before.replaceAll(“\\s{2,},”).trim()代码>
- -
stringafter=StringUtils.normalizeSpace(stringstr)代码>
您可以尝试以下方法之一:
- 纯Java-
String after=before.trim().replaceAll(“\\s+”,”)代码>
- 纯Java-
String after=before.replaceAll(“\\s{2,},”).trim()代码>
- -
stringafter=StringUtils.normalizeSpace(stringstr)代码>
谷歌搜索“java regex remove extra spaces”时返回的第一个结果是,您可以使用replaceAll()
将多个空格替换为单个空格,并使用trim()
删除前导空格和尾随空格。但请注意在您的问题中使用“请提供代码”,因为您不是我们的雇主,我们也不是代码编写服务机构。这通常会让你落选。我给了你一些有力的提示,现在去查一下javadoc,然后自己做剩下的工作。@fjoe注意,如果我想删除前导空格和尾随空格,并在Google上找到一个“只删除前导空格”的点击,我可能不会看这个问题。结果是给出了正确的答案,但那个问题的海报把标题弄糟了。我接着改变了另一个问题的标题。现在,也许其他人也能找到它。停止投票的人最近太快就开始批评了。你可以使用replaceAll()
将多个空格替换为单个空格,并使用trim()
删除前导空格和尾随空格。但请注意在您的问题中使用“请提供代码”,因为您不是我们的雇主,我们也不是代码编写服务机构。这通常会让你落选。我给了你一些有力的提示,现在去查一下javadoc,然后自己做剩下的工作。@fjoe注意,如果我想删除前导空格和尾随空格,并在Google上找到一个“只删除前导空格”的点击,我可能不会看这个问题。结果是给出了正确的答案,但那个问题的海报把标题弄糟了。我接着改变了另一个问题的标题。现在,也许其他人也能找到它。停止投票的人最近太快就开始批评了。这将删除字符串中的所有空白。@macmoonshine不,不会。你投票和评论的速度太快了。把枪收起来,伙计:)你在编辑答案之前被枪杀了-你现在死了;-)@是的,人们最近太快就开始批评了。我注意到很多新手被否决了,而不是被帮助了。真丢脸。这应该是一个社区。下层选民是否修正了投票理论?不。为什么不呢?你的意思是什么?这将删除字符串中的所有空白。@macmoonshine不,不会。你投票和评论的速度太快了。把枪收起来,伙计:)你在编辑答案之前被枪杀了-你现在死了;-)@是的,人们最近太快就开始批评了。我注意到很多新手被否决了,而不是被帮助了。真丢脸。这应该是一个社区。下层选民是否修正了投票理论?不。为什么不呢?你的意思是什么?我没有投反对票,因为这是一个想法(可能有点低水平),但如果有一个小例子来回答这个问题,那就太好了。@AxelH完全正确。我没有投反对票,因为这是我的想法