Post

trip 과 strip 두 메서드간의 차이

문자열 앞뒤의 공백을 제거하기 위해서 java.lang.String Class의 trim(), strip() 메서드를 사용할 수 있다. 하지만, 위 두 개의 메서드는 비슷한듯 하지만 차이점이 존재한다.

trip()


java.lang.String 클래스의 trim() 메서드는 앞뒤 공백을 제거한 문자열의 복사본을 리턴한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class StringSpace {
    public static void main(String[] args) {
        // 앞뒤로 공백이 있는 문자열
        String str = "  Hi Anna!     ";

        // 공백 제거 (trim())
        String trimStr = str.trim();
        String stripStr = str.strip();

        // 공백 제거 문자열 출력
        System.out.println("strip 문자열 : '" + stripStr + "'");
        System.out.println("trim 문자열 : '" + trimStr + "'");
    }
}

strip 문자열 : Hi Anna!
trim 문자열 : Hi Anna!

결과만 놓고 보자면 앞뒤의 공백을 제거하는 것으로 별 차이가 없어 보이지만 두 메서드는 제거하는 공백의 종류가 다르다.

유니코드에는 우리가 일반적으로 많이 사용하는 스페이스(‘\u0020’), 탭(‘\u0009) 등 외에도 더 많은 종류의 공백 문자들이 있는데, 여기서 두 메서드의 차이를 알수 있다.

  • trim( ) : ‘\u0020’ 이하의 공백들만 제거
  • strip( ) : 유니코드의 공백들을 모두 제거


stripLeading(), stripTrailing()


Java 11 이후로는 stripLeading(), stripTrailing() 메서드도 이용할 수 있게 되었다. stripLeading() 메서드는 문자열 앞의 공백을 제거 해주고, stripTrailing() 메서드는 문자열 뒤의 공백을 제거 해준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class StringSpace {
    public static void main(String[] args) {
        // 앞뒤로 공백이 있는 문자열
        String str = "  Hi Anna!     ";

        // 공백 제거 (stripLeading(), stripTrailing())
        String stripLeadingStr = str.stripLeading();
        String stripTrailingStr = str.stripTrailing();

        // 공백 제거 문자열 출력
        System.out.println("원본 문자열 : '" + str + "'");
        System.out.println("stripLeading 문자열 : '" + stripLeadingStr + "'");
        System.out.println("stripTrailing 문자열 : '" + stripTrailingStr + "'");

    }
}
This post is licensed under CC BY 4.0 by the author.