Java 正则表达式处理多个空格
在 Java 中,可以使用正则表达式来处理多个连续空格的情况,以下是几种常见的用法:

替换多个空格为单个空格
String input = "This is a test string.";
String result = input.replaceAll("\\s+", " ");
System.out.println(result); // 输出: "This is a test string."
\\s+匹配一个或多个空白字符(包括空格、制表符、换行符等)replaceAll()方法将所有匹配项替换为单个空格
去除字符串开头和结尾的多个空格
String input = " This is a test string. ";
String result = input.replaceAll("^\\s+|\\s+$", "");
System.out.println(result); // 输出: "This is a test string."
^\\s+匹配字符串开头的多个空格\\s+$匹配字符串结尾的多个空格- 表示"或"的关系
去除字符串中所有多余空格(保留单词间单个空格)
String input = " This is a test string. ";
String result = input.replaceAll("\\s+", " ").trim();
System.out.println(result); // 输出: "This is a test string."
- 先用
\\s+替换所有连续空白为单个空格 - 再用
trim()去除首尾空格
仅处理空格(不包括其他空白字符)
如果只想处理空格而不包括制表符、换行符等,可以使用:
String input = "This is\ta test\nstring.";
String result = input.replaceAll(" +", " ");
System.out.println(result); // 输出: "This is\ta test\nstring."
- 只匹配一个或多个空格字符
分割字符串(按多个空格分割)
String input = "This is a test string.";
String[] parts = input.split("\\s+");
for (String part : parts) {
System.out.println(part);
}
// 输出:
// This
// is
// a
// test
// string.
注意事项
\\s包括空格、制表符(\t)、换行符(\n)、回车符(\r)等- 如果只想匹配空格,使用
` 或[ ]` - 在正则表达式中, 表示"一个或多个"
- 对于性能敏感的场景,建议预编译正则表达式:
import java.util.regex.Pattern;
Pattern pattern = Pattern.compile("\\s+");
String result = pattern.matcher(input).replaceAll(" ");
希望这些示例能帮助你处理 Java 中的多个空格问题!

