https://www.acmicpc.net/problem/1152
Java에서 사용자 입력을 다룰 때, 문자열의 양 끝에 불필요한 공백이 포함될 수 있습니다. 이러한 공백을 제거하는 것은 데이터 처리의 정확성을 높이는 데 필수적입니다. 이번 글에서는 trim() 메서드의 사용법과 Baekjoon Online Judge의 문제 1152번을 예제로 설명하겠습니다.
trim() 메서드란?
trim() 메서드는 문자열의 앞뒤에 있는 모든 공백 문자를 제거합니다. 문자열 내에 포함된 공백에는 영향을 미치지 않으며, 반환된 문자열은 원래의 문자열에서 앞뒤 공백이 제거된 상태입니다.
String trimmedString = originalString.trim();
실용적인 예제: Baekjoon 1152번 문제 해결하기
Baekjoon 1152번 문제는 주어진 문자열에서 단어의 개수를 세는 문제입니다. 이때 입력에 불필요한 앞뒤 공백이 포함될 수 있기 때문에 trim() 메서드를 사용하여 이를 제거하면 보다 정확한 단어 개수를 구할 수 있습니다.
코드 예시:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine().trim(); // 입력의 앞뒤 공백 제거
if (input.isEmpty()) { // 공백만 있는 경우 단어 개수는 0
System.out.println(0);
} else {
String[] words = input.split(" ");
System.out.println(words.length);
}
}
}
코드 설명
- trim() 메서드 사용: 입력 문자열의 앞뒤 공백을 제거하여 불필요한 공백으로 인한 오류를 방지합니다.
- isEmpty() 체크: trim() 후 빈 문자열인 경우 단어 개수를 0으로 출력합니다.
- split() 메서드 사용: 공백을 기준으로 단어를 나눈 후 배열의 길이를 출력합니다.
근데 쓰다보니 StringTokenizer로 풀어도 좋겠다는 생각이 듦! StringTokenizer는 구분자 사이의 빈 문자열을 무시하므로, 앞뒤 공백이나 연속된 공백이 있더라도 단어만 정확하게 인식합니다 이것도 굿!
결론
trim() 메서드는 간단하지만 매우 유용한 함수로, 입력 데이터를 처리할 때 불필요한 공백을 제거하여 데이터의 정확성을 높일 수 있습니다. 이번 예제와 같이 실전 문제 해결 시 trim()을 사용하면 더 깔끔하고 정확한 코드를 작성할 수 있습니다.
'Java & Kotlin' 카테고리의 다른 글
| [JAVA] final 키워드 정복하기! (0) | 2025.10.16 |
|---|---|
| [JAVA] 정적 중첩 클래스를 활용하여 계층간 독립적인 Validation을 적용해보자 (0) | 2025.10.16 |
| [JAVA] 정적 팩토리 메서드(Static Factory Method)란? (버거 먹고싶은 작성자와 스프링의 반환 방식을 곁들인) (0) | 2025.10.16 |
| [JAVA] 빠른 입출력을 위한 BufferdReader, BufferWriter (0) | 2024.10.16 |
| [JAVA] charAt() 메서드(문자열에서 문자 뽑기) (0) | 2024.09.17 |