Java 11发布的String.strip()方法和现有的String.trim()方法有什么区别?

Java 11发布的String.strip()方法和现有的String.trim()方法都是去掉前后的空白字符,它们之间有什么区别?

javastringstriptrim
1
263
小课
小课2022-05-11 17:10
1 个回答

首先这是一个历史原因,在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"
1
已修改
小课
小课2022-05-11 18:32
你的回答

内容