ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

trim( )

 
 

메서드 (Method)

 

정의

문자열을 깔끔하게

불필요한 공백 문자열을 정리하거나 정규화할 때 사용하는 함수입니다.

공백 문자에는 스페이스, 탭, 개행 문자가 있습니다.

사용법

JavaScript

💡 원본 문자열을 변경하지 않고, 새로운 문자열을 반환합니다.

String exampleString = "  Example  "; // 예시
String result = exampleString.trim(); // 변환 코드
System.out.println(exampleString); // 출력 : "  Example  "
System.out.println(result); // 출력 : "Example"

 

💡 양 끝 공백만 제거합니다.

String exampleString = "  Example  "; // 양끝 공백 예시
System.out.println("'" + exampleString.trim() + "'");  // 출력 : "Example"

String example = "Example Test"; // 중간 공백 예시
System.out.println("'" + example.trim() + "'"); // 출력 : "Example Test"

 

💡 공백만 있는 경우 공백을 없애고, 공백이 없는 경우 그대로 출력합니다.

String example = "   ";
System.out.println("'" + example.trim() + "'"); // ''

String example = "Example";
System.out.println("'" + example.trim() + "'"); // 'Example'

Why ?

trim( )

💡 사용자의 입력을 정규화시키고, 데이터를 정규화 시킵니다.

// 명령어, 양식이 있는 값의 경우 입력을 정규화시켜 예외를 제거할 수 있습니다.
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine().trim();

 


💡 다양한 데이터가 포함된 로그 데이터의 가독성을 높힙니다.

 

trim( )은 원본 문자열을 변경하지 않고, 공백을 제거한 새로운 문자열을 출력합니다.

 

💡 새로운 변수에 저장하거나 원본 변수에 재할당해서 사용해야 합니다.

public class TrimExample {
    public static void main(String[] args) {
        String original = "   Original String   "; // 원본 문자열
        String trimmed = original.trim();       // 공백을 제거한 새로운 문자열
  		// original.trim();  // 변수에 할당하지 않으면 바로 사라집니다.
        
        // 원본 문자열과 새로운 문자열 출력
        System.out.println("원본 문자열: '" + original + "'");
        System.out.println("Trim 후 새로운 문자열: '" + trimmed + "'");
    }
}

 

💡 trim( )은 strip( )과 다르게 유니코드 공백을 제거할 수 없습니다.

String example = "\u2000strip Example\u2000";
System.out.println(example.trim());  // 유니코드 공백이 제거되지 않음
System.out.println(example.strip()); // 유니코드 공백이 제거됨

 


 
 

[Java] String.trim() - 문자열 전후 공백 제거 및 정규화

데이터를 처리하다 보면 의도치 않게 문자열 앞뒤에 포함된 공백 때문에 로직이 꼬이는 경우가 많습니다. Java의 trim() 메서드는 이러한 불필요한 공백을 제거하여 데이터를 정규화(Normalization)하는 데 사용되는 가장 기초적이면서도 필수적인 메서드입니다.


1. trim()의 정의와 동작 원리

ASCII 제어 문자와 공백을 제거합니다.

trim() 메서드는 대상 문자열의 앞뒤(Leading & Trailing)에 존재하는 U+0020(스페이스) 이하의 제어 문자(탭, 개행 등)를 모두 제거합니다.

  • Immutable (불변성): 원본 문자열을 직접 수정하지 않고, 공백이 제거된 새로운 문자열 객체를 생성하여 반환합니다.
  • 범위: 문자열 '내부'의 공백은 건드리지 않으며, 오직 '양 끝'의 공백만 처리합니다.

2. 실무 활용 및 코드 예제

데이터 정규화의 핵심 예시

💡 원본 문자열 유지 확인 (재할당 필요)

String original = "   Java Core   ";
original.trim(); // 결과를 할당하지 않으면 아무 일도 일어나지 않음
System.out.println("Result: '" + original + "'"); // "   Java Core   "

String result = original.trim(); // 새로운 변수에 할당
System.out.println("Result: '" + result + "'"); // "Java Core"

💡 사용자 입력값 예외 방지

// 사용자가 실수로 넣은 공백 때문에 로그인이 실패하는 것을 방지합니다.
Scanner sc = new Scanner(System.in);
String userId = sc.nextLine().trim(); // " admin" -> "admin"

3. 심화: trim()과 strip()의 결정적 차이

유니코드 공백 처리 여부

Java 11부터 추가된 strip()trim()의 상위 호환 버전입니다. 가장 큰 차이는 유니코드 공백(Unicode WhiteSpace)을 인식하느냐에 있습니다.

메서드 특징 지원 버전
trim()ASCII(U+0020 이하) 공백만 제거JDK 1.0~
strip()유니코드 상의 모든 공백 문자 제거 (권장)JDK 11~

전주 예시 (유니코드 스페이스 \u2000):
- trim(): 제거 못함
- strip(): 완벽히 제거

🎓 개발 포인트

단순한 문자열 작업에는 trim()으로도 충분하지만, 전 세계의 다양한 공백 문자를 처리해야 하는 글로벌 서비스라면 Java 11 이상의 strip() 사용을 적극 권장합니다. 무엇보다 String은 불변 객체라는 점을 기억하여, 반드시 리턴값을 변수에 재할당하는 습관을 들입시다.

728x90