rim方法一般用来去除空格,但是根据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();
}
}
}
}
输出如下: