문자열의 공백을 제거하는 방법을 소개합니다.
trim()
String.trim()
은 문자열 앞 뒤의 공백을 제거합니다. 문자열 중간에 있는 공백은 제거하지 못합니다.
다음과 같이 문자열 앞에만 공백이 있거나, 뒤에만, 또는 앞 뒤로 공백이 있는 문자열이 있습니다.
trim()
을 호출하면 앞, 뒤의 whitespace가 모두 제거됩니다.
String str1 = " By default ";
String str2 = " By default";
String str3 = "By default ";
String result1 = str1.trim();
String result2 = str2.trim();
String result3 = str3.trim();
System.out.println("[" + result1 + "]");
System.out.println("[" + result2 + "]");
System.out.println("[" + result3 + "]");
Output:
[By default]
[By default]
[By default]
replace()
replace()
를 이용하면 문자열 가운데 있는 공백을 제거할 수 있습니다.
다음과 같이 replace 메소드들이 제공됩니다.
String.replace(char, char)
: 첫번째 인자의 문자를 찾고, 두번째 문자로 변환해 줍니다.String.replaceAll(String, String)
: 첫번째 문자열을 찾고, 두번째 문자열로 변환해 줍니다.String.replaceFirst(String, String)
: 첫번째 인자의 문자를 찾고, 두번째 문자로 변환해 줍니다. 단, 한번만 변환해줍니다.
다음과 같이 적용할 수 있습니다. replaceFirst()
는 맨 처음 찾은 문자열만 한번 변환해주기 때문에 그 뒤의 공백은 제거되지 않았습니다.
String str1 = " By default ";
String result1 = str1.replaceAll(" ", "");
String result2 = str1.replace(" ", "");
String result3 = str1.replaceFirst(" ", "");
System.out.println("[" + result1 + "]");
System.out.println("[" + result2 + "]");
System.out.println("[" + result3 + "]");
Output:
[Bydefault]
[Bydefault]
[By default ]
정규표현식
replaceAll()
은 정규표현식도 지원됩니다.
첫번째 인자로 정규표현식을 전달하며, 두번째 인자로 변환할 문자열을 전달합니다.
다음과 같이 whitespace를 제거할 수 있습니다. "\\s"
는 whitespace를 의미하는 정규표현식입니다.
공백을 ""
으로 변환하여 없애라는 의미가 됩니다.
String str1 = " By default ";
String result1 = str1.replaceAll("\\s", "");
System.out.println("[" + result1 + "]");
Output:
[Bydefault]
정규표현식에 대한 자세한 내용은 정규표현식(regex), 다양한 예제로 쉽게 이해하기를 참고해주세요.
Recommended Posts:
- Java - Locale 클래스
- Java - split()으로 문자열을 자르기
- Java - substring()으로 문자열을 자르기
- Java - List와 Set의 차이점
- Java - forEach 사용 방법
- Java - Thread.join()
- Java - getPath(), getAbsolutePath(), getCanonicalPath()
- Java - Timer, TimerTask
- Java - Number Class
- Java - printf()로 문자열 포맷 출력
- Java - Float을 Byte 배열로 변환, Byte배열을 float으로 변환
- Java - 변수의 유효 범위 (Variable Scope)
- Java - instanceOf 연산자