728x90

개요

Java에서 문자열의 앞뒤 공백을 제거하는 메서드로 strip()trim()이 있습니다. 두 메서드는 비슷해 보이지만, 동작 방식과 처리 범위에서 차이가 있습니다.

 

본 글에서는 strip 메서드에 대해서 알아보고, trim 메서드와의 차이점에 대해서 정리하고자 합니다.

 

trim() 메서드란❓

Java 1.0부터 사용 가능하며, ASCII 공백만 제거합니다.

 

trim() 메서드는 유니코드 공백 문자는 인식하지 못하며, 단순 공백 처리에 적합합니다.

public class TrimExample {
    public static void main(String[] args) {
        String text = " Hello World\u2001"; // 유니코드 공백 포함
        System.out.println("Before trim: [" + text + "]");
        System.out.println("After trim: [" + text.trim() + "]");
    }
}

 

 

실행 결과

Before trim: [ Hello World ]
After trim: [Hello World ]

 

위 결과에서 알 수 있듯이 trim() 메서드는 ASCII 공백만 제거하고, "\u2001"유니코드 공백으로 ASCII 공백이 아니므로 제거되지 않습니다.

 

 

strip() 메서드란❓

Java 11에서 추가된 메서드로, trim() 메서드와 달리 유니코드 공백(Whitespace)까지 제거합니다.

 

public class StripExample {
    public static void main(String[] args) {
        String text = "\u2001Hello World\u2001"; // 유니코드 공백 포함
        System.out.println("Before strip: [" + text + "]");
        System.out.println("After strip: [" + text.strip() + "]");
    }
}

 

실행 결과

Before strip: [ Hello World ]
After strip: [Hello World]

 

위 결과에서 알 수 있듯이 strip() 메서드는 유니코드 공백까지 제거합니다.

  • \u2001이 제거되고 "Hello World"만 남습니다.

 

주요 특징

 

  • 유니코드 표준에 따라 공백 문자감지 및 제거합니다.
  • 전 세계 다양한 언어환경에서 사용되는 공백 처리가 가능합니다.

 

따라서 다국어 환경에서 유니코드 공백 처리가 필요할 경우 strip()을 사용하는 것이 적합합니다.