어제 오늘 내일

[Java] 문자열 연속된 공백 하나로 치환하기 본문

IT/Java

[Java] 문자열 연속된 공백 하나로 치환하기

hi.anna 2021. 4. 25. 08:51

 

지난번에는

문자열의 앞뒤 공백을 제거하는 방법과

[Java] 문자열 앞뒤 공백 제거하기 (trim() vs strip() 차이)

문자열의 모든 공백을 제거하는 방법을 알아보았습니다.

[Java] 문자열에서 공백 제거하기

 

이번에는 여러개의 연속된 공백이 있을 경우,

하나의 공백으로 치환하는 방법을 알아보도록 하겠습니다.

 

 

replaceAll() 과 정규식(regular expression, regex) 활용하기

  코드  

public class ToSingleSpace {
    public static void main(String[] args) {

        String str = "Hi,    Every\t\t One!";

        // 연속된 공백 -> 하나의 공백으로
        String newStr = str.replaceAll("\\s+", " ");

        // 결과 출력
        System.out.println("[" + newStr + "]");

    }
}

 

  결과  

[Hi, Every One!]

str.replaceAll("\\s+", " ");

정규식 "\s"는 다음과 같은 종류의 공백(white space)을 나타냅니다.

(\t, \n, \x0B, \f, \r)

그리고 "+"는 1번이상을 의미합니다.

즉, "\s+"는 1번 이상의 공백을 의미합니다.

따라서, 위 코드는 연속되는 공백을, 하나의 공백(" ")으로 치환해 주게 됩니다.

 

 

정규식을 이용해서, 연속된 공백을 하나의 공백으로 치환하는 방법을 알아보았습니다.

 

 

반응형
Comments