问题: 在eclipse编辑器中工作时,无法删除字符串中的多个空格
上下文:
String myString1 ="aye bye tye ";
String myString2 =myString1.replaceAll("\\s+","");
System.out.println("replaced string ="+myString2);
在输出中,不删除空格,结果与字符串相同,
replaced string =aye bye tye
正在打印
但如果单词之间只有一个空格,
String myString1 ="aye bye tye";
结果正确如下:
replaced string =ayebyetye
我想知道我哪里出错了?
答案 0 :(得分:3)
我只能猜测空格不是真正的空格字符(U + 0020),而是一些Unicode空格字符,比如U + 00A0 NO BREAK SPACE。默认情况下,\s
仅匹配ASCII范围内的空格字符,因此不会将其删除。
如果要删除所有Unicode空格,则必须使用内联构造(?U)
启用UNICODE_CHARACTER_CLASS
标志
String myString2 = myString1.replaceAll("(?U)\\s+", "");
答案 1 :(得分:1)
在替换零件中使用空格,以便用一个空格字符替换一个或多个空格。
String myString2 = myString1.replaceAll("\\s+", " ");
或
String myString2 = myString1.replaceAll("(\\s)+", "$1");
答案 2 :(得分:0)
为什么
String myString2 =myString1.replaceAll(" ","");
不是一种选择吗?你根本不需要正则表达式