어느 윗분께서 String의 trim()을 사용하면, 한번더 호출해야 정확하게 trim()이 된다고 말씀을 하셔서.. String 클래스의 trim()메쏘드를 살펴보니 아래와 같이 코딩이 되어 있네요..

    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;
    }

위 코드를 살펴보면, char[]의 ' ' <-- 공백을 앞쪽에서는 st를 뒤로 밀고, 뒤쪽에서는 len을 앞쪽으로 땅기면서 substring을 하게 되어 있네요..

위 코드를 보면 분명히 한번만 trim()하면 공백이 날라가네요.. ^^