/**
* 都是基于正则表达式
* \s : A whitespace character: [ \t\n\x0B\f\r](可以匹配空格键/(水平)制表符/换行键/垂直制表符/换页符/回车键)
* 从输出可以看出,使用 \s 才是正确的处理String中Whitespace的方式,简单的只对空格键space打出的空格做处理严格说是错误的。
*/
public class CollectionTest {
public static void main(String[] args) {
/**
* 设 -代表空格键 =代表制表符(即tab键)
* 则 str的组成为 "--A---B-=-CC---"
*/
String str = " A B CC ";
System.out.println(str);
CollectionTest.removeAllWhitespace(str);
CollectionTest.reserveOneSpace(str);
System.out.println(str);
}
//去除String中所有空格
static void removeAllWhitespace(String str) {
//正确的做法 \s
System.out.println(str.replaceAll("\\s*", ""));
System.out.println(str.replaceAll("\\s+", ""));
//错误做法,只处理了空格键打出的空格
System.out.println(str.replaceAll(" ", ""));
//同样也是只对空格键做处理的错误做法
String[] sa = str.split(" ");
String result = "";
for (String string : sa) {
result += string;
}
System.out.println(result);
}
//String中的留白部分只保留一个由空格键space打出的空格
static void reserveOneSpace(String str) {
//正确的做法:使用 \s
System.out.println(str.replaceAll("\\s+", " "));
System.out.println(str.replaceAll("\\s{1,}", " "));
System.out.println(str.replaceAll("\\s{2,}", " "));
//错误的做法:只处理空格键打出的空格
System.out.println(str.replaceAll(" +", " "));
System.out.println(str.replaceAll(" {1,}", " "));
System.out.println(str.replaceAll(" {2,}", " "));
}
}
A B CC
ABCC
ABCC
AB CC
AB CC
A B CC
A B CC
A B CC
A B CC
A B CC
A B CC
A B CC
|