如何使用Java正则表达式使用单个空格替换字符串中的多个空格?
元字符“\\s”与空格匹配,+表示空格出现一次或多次,因此,正则表达式\\S+与所有空格字符(单个或多个)匹配。因此,用一个空格替换多个空格。
将输入字符串与上述正则表达式匹配,然后将结果替换为单个空格“”。
例子1
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ReplaceAllExample { public static void main(String args[]) { //从用户读取字符串 System.out.println("Enter a String"); Scanner sc = new Scanner(System.in); String input = sc.nextLine(); String regex = "\\s+"; //编译正则表达式 Pattern pattern = Pattern.compile(regex); //检索匹配器对象 Matcher matcher = pattern.matcher(input); //用单个空格替换所有空格字符 String result = matcher.replaceAll(" "); System.out.print("Text after removing unwanted spaces: \n"+result); } }
输出结果
Enter a String hello this is a sample text with irregular spaces Text after removing unwanted spaces: hello this is a sample text with irregular spaces
例子2
import java.util.Scanner; public class Test { public static void main(String args[]) { //从用户读取字符串 System.out.println("Enter a String"); Scanner sc = new Scanner(System.in); String input = sc.nextLine(); //正则表达式以匹配空格 String regex = "\\s+"; //用单个空格替换模式 String result = input.replaceAll(regex, " "); System.out.print("Text after removing unwanted spaces: \n"+result); } }
输出结果
Enter a String hello this is a sample text with irregular spaces Text after removing unwanted spaces: hello this is a sample text with irregular spaces