Java String.trim()方法去掉的不只是空格

trim方法一般用来去除空格,但是根据JDK API的说明,该方法并不仅仅是去除空格,它能够去除从编码’\u0000′ 至 ‘\u0020’ 的所有字符。

回车换行也在这20个字符之中,以下是一个示例:


public class StringTest {
public static void main(String[] args) {
char[] chars = {‘a’,’b’,’c’,’\r’,’\n’};
System.out.println(chars.length);
String str = new String(chars);
System.out.println(str.length());
String newStr = str.trim();
System.out.println(newStr.length());
}
}

输出如下:

5
5
3

从输出可以看出,trimI()方法吧\r\n两个字符也去掉了。

以下是trim()方法的API说明:

public String trim()

返回字符串的副本,忽略前导空白和尾部空白。

如果此 String 对象表示一个空字符序列,或者此 String 对象表示的字符序列的第一个和最后一个字符的代码都大于 ‘\u0020’(空格字符),则返回对此 String 对象的引用。

否则,若字符串中没有代码大于 ‘\u0020’ 的字符,则创建并返回一个表示空字符串的新的 String 对象。

否则,假定 k 为代码大于 ‘\u0020’ 的第一个字符的索引,m 为代码大于 ‘\u0020’ 的最后一个字符的索引。创建一个新的 String 对象,它表示此字符串中从索引 k 处的字符开始,到索引 m 处的字符结束的子字符串,也就是 this.substring(k, m+1) 的结果。

此方法用于截去字符串从头到尾的空白(如上面所定义)。

返回:
此字符串移除了前导和尾部空白的副本,如果没有前导和尾部空白,则返回此字符串。

trim()方法可以去除的字符明细可以通过以下函数进行输出:


public class StringTest {
public static void main(String[] args) {
char[] chars = new char[20];
chars[0] = ‘\u0000’;
chars[1] = ‘\u0001’;
chars[2] = ‘\u0002’;
chars[3] = ‘\u0003’;
chars[4] = ‘\u0004’;
chars[5] = ‘\u0005’;
chars[6] = ‘\u0006’;
chars[7] = ‘\u0007’;
chars[8] = ‘\u0008’;
chars[9] = ‘\u0009’;
chars[10] = ‘\u0010’;
chars[11] = ‘\u0012’;
chars[12] = ‘\u0013’;
chars[13] = ‘\u0014’;
chars[14] = ‘\u0015’;
chars[15] = ‘\u0016’;
chars[16] = ‘\u0017’;
chars[17] = ‘\u0018’;
chars[18] = ‘\u0019’;
chars[19] = ‘\u0020’;

for (int i = 0; i < chars.length; i++) { System.out.print("(" + i + ")" + chars[i] + " "); if (i != 0 && i % 5 == 0) { System.out.println(); } } } }

输出如下:

2013-04-01_130138

参考:http://www.cjsdn.net/doc/jdk50/java/lang/String.html#trim()

此条目发表在java/j2ee分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据