이 글에서는 자바(Java)에서 문자열(String)에 포함된 모든 공백(whitespace)을 제거하는 방법을 알아봅니다. 문자열은 하나 이상의 문자로 구성되며 큰따옴표(" ")로 묶어 표현하는 데이터 타입입니다.
자바에서 공백을 제거하는 가장 널리 사용되는 방법은 replaceAll() 메서드와 정규 표현식을 조합하는 것입니다. 정규 표현식 \\s는 일반적인 띄어쓰기뿐만 아니라 탭(tab), 줄바꿈(newline) 등 모든 종류의 공백 문자를 의미합니다.
문제 예시
입력 문자열 −
Input string: Java programming is fun to learn.
원하는 출력 결과 −
The string after replacing white spaces: Javaprogrammingisfuntolearn.
알고리즘
Step 1 - 시작
Step 2 - 두 개의 문자열 변수 input_string과 result를 선언한다.
Step 3 - 변수에 값을 할당한다.
Step 4 - replaceAll("\\s", "") 함수를 사용해 모든 공백을 빈 문자열로 대체한다.
Step 5 - 결과를 출력한다.
Step 6 - 종료예제 1: main 메서드에서 직접 처리하기
첫 번째 예제에서는 모든 연산을 하나의 main 메서드 안에서 함께 처리합니다. 간단한 스크립트나 학습용 코드에 적합한 방식입니다.
public class Demo {
public static void main(String[] args) {
String input_string = "Java programming is fun to learn.";
System.out.println("The string is defined as: " + input_string);
String result = input_string.replaceAll("\\s", "");
System.out.println("\nThe string after replacing white spaces: " + result);
}
}실행 결과
The string is defined as: Java programming is fun to learn. The string after replacing white spaces: Javaprogrammingisfuntolearn.
예제 2: 객체지향 방식으로 함수 분리하기
두 번째 예제에서는 공백 제거 로직을 별도의 메서드로 캡슐화하여 객체지향 프로그래밍(OOP) 스타일로 구현합니다. 이렇게 하면 코드의 재사용성과 유지보수성이 크게 향상됩니다.
public class Demo {
public static String string_replace(String input_string){
String result = input_string.replaceAll("\\s", "");
return result;
}
public static void main(String[] args) {
String input_string = "Java programming is fun to learn.";
System.out.println("The string is defined as: " + input_string);
String result = string_replace(input_string);
System.out.println("\nThe string after replacing white spaces: " + result);
}
}실행 결과
The string is defined as: Java programming is fun to learn. The string after replacing white spaces: Javaprogrammingisfuntolearn.
추가 팁
탭이나 줄바꿈까지 고려할 필요 없이 단순한 띄어쓰기만 제거하고 싶다면, 정규 표현식 없이 replace(" ", "")를 사용하는 것이 더 효율적입니다. 반면, 문자열 내 모든 종류의 공백 문자를 확실하게 제거하려면 위 예제처럼 replaceAll("\\s", "")를 사용하는 것이 가장 안전한 방법입니다.