aio*_*obe 375
像这样:
yourString = yourString.replaceAll("\\s+", " ");
Run Code Online (Sandbox Code Playgroud)
例如
System.out.println("lorem ipsum dolor \n sit.".replaceAll("\\s+", " "));
Run Code Online (Sandbox Code Playgroud)
输出
lorem ipsum dolor sit.
Run Code Online (Sandbox Code Playgroud)
这是什么\s+意思?
\s+是一个正则表达式.\s匹配空格,制表符,换行符,回车符,换页符或垂直制表符,并+说"其中一个或多个".因此,上面的代码将折叠所有"空格子串"长于一个字符,具有单个空格字符.
cod*_*ict 23
你可以使用正则表达式
(\s)\1
Run Code Online (Sandbox Code Playgroud)
和
用它替换它$1.
Java代码:
str = str.replaceAll("(\\s)\\1","$1");
Run Code Online (Sandbox Code Playgroud)
如果输入"foo\t\tbar "你将得到"foo\tbar "输出
但是如果输入"foo\t bar"它将保持不变,因为它没有任何连续的空格字符.
如果将所有空白字符(空格,垂直制表符,水平制表符,回车符,换页符,换行符)视为空格,则可以使用以下正则表达式将任意数量的连续空格替换为单个空格:
str = str.replaceAll("\\s+"," ");
Run Code Online (Sandbox Code Playgroud)
但是如果你想用一个空格替换两个连续的空格,你应该这样做:
str = str.replaceAll("\\s{2}"," ");
Run Code Online (Sandbox Code Playgroud)
试试这个 - 你必须这样做 import java.util.regex.*;
Pattern pattern = Pattern.compile("\\s+");
Matcher matcher = pattern.matcher(string);
boolean check = matcher.find();
String str = matcher.replaceAll(" ");
Run Code Online (Sandbox Code Playgroud)
string你的字符串在哪里需要删除重复的空格
我发现最快(但不是最漂亮的方式)
while (cleantext.indexOf(" ") != -1)
cleantext = StringUtils.replace(cleantext, " ", " ");
Run Code Online (Sandbox Code Playgroud)
这在Android上与正则表达式相反的速度非常快
String str = " Text with multiple spaces ";
str = org.apache.commons.lang3.StringUtils.normalizeSpace(str);
// str = "Text with multiple spaces"
Run Code Online (Sandbox Code Playgroud)
虽然为时已晚,但我找到了一个更好的解决方案(对我有用),它将用一个类型的白色空间替换所有连续相同类型的空白区域.那是:
Hello!\n\n\nMy World
Run Code Online (Sandbox Code Playgroud)
将会
Hello!\nMy World
Run Code Online (Sandbox Code Playgroud)
请注意,仍有前导和尾随空格.所以我的完整解决方案是:
str = str.trim().replaceAll("(\\s)+", "$1"));
Run Code Online (Sandbox Code Playgroud)
在这里,trim()用""替换所有前导和尾随空白字符串.(\\s)用于\\s在组#1中捕获(即"','\n','\ t''等空白区域).+sign用于匹配1个或多个前面的标记.因此,(\\s)+可以是任何单个空白字符('','\n'或'\ t')中的连续字符(1个或更多).$1用于将匹配类型的组#1字符串(仅包含1个空格字符)替换匹配的字符串(即匹配的单个空格字符).上述解决方案将改变如下:
Hello!\n\n\nMy World
Run Code Online (Sandbox Code Playgroud)
将会
Hello!\nMy World
Run Code Online (Sandbox Code Playgroud)
我没有在这里找到我的上述解决方案,所以我发布了它.
| 归档时间: |
|
| 查看次数: |
148090 次 |
| 最近记录: |