Java 11发布的String.strip()方法和现有的String.trim()方法都是去掉前后的空白字符,它们之间有什么区别?
首先这是一个历史原因,在unicode还没有普及之前,trim方法就存在了,所以当时trim只考虑了ascii码中的空白字符,但是在unicode字符集中空白字符比ascii码中要多,所以在使用unicode字符集时trim方法实际上去除的空白字符不完全,而strip方法则相当于是unicode版本的trim,它会去除所有unicode中的空白字符。
下面这个示例用于演示trim和strip对于unicode空白字符的处理区别。
String string = " \u2001" + " Java " + "\u2001 ";
System.out.println("Before : \"" + string + "\"");
System.out.println("After trim : \"" + string.trim() + "\"");
System.out.println("After strip : \"" + string.strip() + "\"");
运行后得到如下结果。
Before : " Java "
After trim : " Java "
After strip : "Java"
内容