Java 공백 문자 처리 완벽 가이드
Java에서 공백 문자를 제거하고 처리하는 다양한 방법을 알아보세요.
1. trim() 메서드 사용
trim() 메서드는 문자열 앞뒤의 공백을 제거합니다.
기본 사용법:
String text = " 안녕하세요 "; String result = text.trim(); System.out.println(result); // "안녕하세요"
⚠️ 주의사항:
- trim()은 앞뒤 공백만 제거합니다 (U+0020 이하의 공백 문자)
- 문자열 중간의 공백은 제거하지 않습니다
- 전각 공백(U+3000)은 제거하지 않습니다
2. replaceAll() 메서드 사용
replaceAll() 메서드는 정규식을 사용하여 모든 공백을 제거할 수 있습니다.
모든 공백 제거:
String text = "안녕 하세요";
String result = text.replaceAll("\\s", "");
System.out.println(result); // "안녕하세요"
// 여러 공백을 하나로
String normalized = text.replaceAll("\\s+", " ");
System.out.println(normalized); // "안녕 하세요"특수 공백 제거:
// 전각 공백 제거
String text = "안녕 하세요";
String result = text.replaceAll("\\u3000", "");
System.out.println(result); // "안녕하세요"
// 모든 종류의 공백 제거
String allSpaces = text.replaceAll("[\\s\\u00A0\\u3000]", "");
System.out.println(allSpaces);3. replace() 메서드 사용
replace() 메서드는 특정 문자를 다른 문자로 바꿀 수 있습니다.
String text = "안녕 하세요";
String result = text.replace(" ", "");
System.out.println(result); // "안녕하세요"
// 모든 공백 제거 (반복)
String allSpaces = text.replace(" ", "");
while (allSpaces.contains(" ")) {
allSpaces = allSpaces.replace(" ", "");
}4. Apache Commons Lang 사용
Apache Commons Lang 라이브러리를 사용하면 더 강력한 공백 처리가 가능합니다.
// Maven 의존성 추가 필요 // <dependency> // <groupId>org.apache.commons</groupId> // <artifactId>commons-lang3</artifactId> // <version>3.12.0</version> // </dependency> import org.apache.commons.lang3.StringUtils; String text = " 안녕 하세요 "; // 앞뒤 공백 제거 String trimmed = StringUtils.trim(text); // 모든 공백 제거 String noSpaces = StringUtils.deleteWhitespace(text); // 공백 체크 boolean isEmpty = StringUtils.isBlank(text);
실용 예제
사용자 입력 정리:
public String cleanUserInput(String input) {
if (input == null) {
return "";
}
// 앞뒤 공백 제거 및 여러 공백을 하나로
return input.trim().replaceAll("\\s+", " ");
}공백 체크:
public boolean isEmptyOrWhitespace(String text) {
return text == null || text.trim().isEmpty();
}
// 또는
public boolean isBlank(String text) {
return text == null || text.trim().length() == 0;
}자주 묻는 질문 (FAQ)
Q: trim()과 replaceAll()의 차이는?
A: trim()은 앞뒤 공백만 제거하고, replaceAll()은 정규식을 사용하여 모든 위치의 공백을 제거하거나 변환할 수 있습니다.
Q: 전각 공백을 제거하려면?
A: replaceAll("\\u3000", "")또는 replaceAll("[\\s\\u3000]", "")를 사용하세요.