Java - 문자열 공백제거 (trim, replace)

문자열에 포함된 공백 문자를 제거하는 방법에 대해서 알아보겠습니다.

1. 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]

2. 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 ]

3. 정규표현식(Regex)

replaceAll()정규표현식도 지원됩니다.

첫번째 인자로 정규표현식을 전달하며, 두번째 인자로 변환할 문자열을 전달합니다.

다음과 같이 whitespace를 제거할 수 있습니다. "\\s"는 whitespace를 의미하는 정규표현식입니다. 공백을 ""으로 변환하여 없애라는 의미가 됩니다.

String str1 = " By default ";

String result1 = str1.replaceAll("\\s", "");

System.out.println("[" + result1 + "]");

Output:

[Bydefault]

정규표현식에 대한 자세한 내용은 정규표현식(regex), 다양한 예제로 쉽게 이해하기를 참고해주세요.

replace()와 replaceAll()의 차이점은 "Java - replace()와 replaceAll()의 차이점"에 정리하였습니다.

Loading script...

Related Posts

codechachaCopyright ©2019 codechacha