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

JS · 20 Oct 2020

문자열의 공백을 제거하는 방법을 소개합니다.

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), 다양한 예제로 쉽게 이해하기를 참고해주세요.

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha