[java 基础] String.trim()方法详解

java String.trim()方法详解

本文为原创文章 转载请注明出处。

废话不多说 直接附源代码如下:

 public String trim() {
        int len = value.length;
        int st = 0;
        char[] val = value;    /* avoid getfield opcode */

        while ((st < len) && (val[st] <= ' ')) {
            st++;
        }
        while ((st < len) && (val[len - 1] <= ' ')) {
            len--;
        }
        return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
    }



   public String substring(int beginIndex, int endIndex) {
        if (beginIndex < 0) {
            throw new StringIndexOutOfBoundsException(beginIndex);
        }
        if (endIndex > value.length) {
            throw new StringIndexOutOfBoundsException(endIndex);
        }
        int subLen = endIndex - beginIndex;
        if (subLen < 0) {
            throw new StringIndexOutOfBoundsException(subLen);
        }
        return ((beginIndex == 0) && (endIndex == value.length)) ? this
                : new String(value, beginIndex, subLen);
    }

注:st 寻找空格的开始位置
len 是结束位置
如果在String 对象的开头或结尾处有空格 则取子串 否则返回原对象。

测试代码


public class test2 {

    public static void main(String[] args) {
    String t1 = "aaaaa";
    String t2 = "  a aaaa";
    String t3 = "aaaa a  ";
    String t4 = "  aaaaa  ";

    System.out.println(t1.trim());
    System.out.println(t2.trim());
    System.out.println(t3.trim());
    System.out.println(t4.trim());

    System.out.println(t1.trim()==(t1.trim()));
    System.out.println(t1.trim()==(t2.trim()));
    System.out.println(t1.trim()==(t3.trim()));
    System.out.println(t1.trim()==(t4.trim()));
    }

}

测试结果

aaaaa
a aaaa
aaaa a
aaaaa
true
false
false
false

你可能感兴趣的:(java)