一起去看海

2010/04/09

Java字符串的trim方法

Filed under: Java笔记 — Tags: — admin @ 09:04

Java的String类有个方法叫trim(),说是去除字符串中的空格用的,其实这样的表述并不正确,正确的表述应该是去除字符串首尾的ASCII码小于等于空格的字符,对于字符串中的空格并没有效果。有点纠结,不过看一下trim()的实现代码就明白了。

[java]public String trim() {
int len = count;
int st = 0;
int off = offset;      /* avoid getfield opcode */
char[] val = value;    /* avoid getfield opcode */

while ((st < len) && (val[off + st] <= ‘ ‘)) {
st++;
}
while ((st < len) && (val[off + len - 1] <= ‘ ‘)) {
len–;
}
return ((st > 0) || (len < count)) ? substring(st, len) : this;
}[/java]

第一个while循环去除字符串前面的空格,后一个循环去除字符串后面的空格。

示例:

[java]public static void main(String[] args) {

String a="     \n    www ooobj.com\n";
String b="www ooobj.com";

System.out.println(b.equals(a));

a = a.trim();

System.out.println(b.equals(a));

System.out.println(a);
}[/java]

输出:

[java]false
true
www ooobj.com[/java]

另外,trim方法并不对传入的字符串进行空值检查,有需要可以再写一个检查空值的:

[java]private static String trim(String src) {
if (src == null) {
return null;
}
return src.trim();
}[/java]

Powered by WordPress