[자바 정규식] Tab, 2회 이상 발생된 Space 를 Space 1개로 변환하기

2025. 5. 13. 18:57Java/소스 쪼가리

로직 적용 전 :

public class Test {
	public static void main(String[] args) {
		new Test();
	}

	Test() {
		String letra = """
			즐거운	곳에서는 날 오라 하여도
			내 쉴 			곳은 작은 집 내 집 뿐이리
			내 나라 내 기쁨 길이           쉴 곳도
			꽃 피고 새 우는 집 내 집 뿐이리
			오 사랑 나의            집
			즐거운 나의 벗 집 내 집 뿐           이리""";

		System.out.println(letra);
	}
}

 

 

 

로직 적용 후 :

public class Test {
	public static void main(String[] args) {
		new Test();
	}

	Test() {
		String letra = """
			즐거운	곳에서는 날 오라 하여도
			내 쉴 			곳은 작은 집 내 집 뿐이리
			내 나라 내 기쁨 길이           쉴 곳도
			꽃 피고 새 우는 집 내 집 뿐이리
			오 사랑 나의            집
			즐거운 나의 벗 집 내 집 뿐           이리""";

		String output = letra.replaceAll("\t", " ").replaceAll(" {2,}", " ");
		System.out.println(output);
	}
}

 

설명:

/**
 {발생횟수,} : 발생횟수 뒤에 "," 를 붙여서 ~이상 조건으로 만들어 준다.

-----------

 "변환할 문자열".replaceAll(정규식 문자열, " ");
 정규식 문자열을 "\t| {2,}" 으로 할 경우, [\t(탭)] 또는 [" " 2회 발생]이 아니며
 \t(탭 문자)도 2회 이상 발생한 조건으로 해석되기 때문에 \t(탭 문자)가 한 개만 있는 경우는 무시된다.
 
 따라서 
 "변환할 문자열".replaceAll("\t", " "); 으로 \t(탭 문자)를 모두 " " 로 변환한 후에
 .replaceAll(" {2,}", " "); 읋 다시 적용해서 최종적으로 " " 하나로 줄인다.
*/

'Java > 소스 쪼가리' 카테고리의 다른 글

String 한 줄 주석에서 항목값 걸러내기  (1) 2025.05.01