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

发表于: java/j2ee | 作者: darkmi | 日期: 2013/04/01 08:00
标签: 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()

切换主题切换主题
返回顶部