Java

[Java] 문자열 split 할 때 마침표(.) : split(".") → split("//.")

디벨로펄 2022. 8. 2.
반응형

split()함수는 인자로, regex 정규식을 받는다. (이걸 몰랐네 ㄷ..ㄷ)

 "."은 정규식에서 아래와 같은 의미를 가지기 때문에  split에서 사용 시 원하는 결과를 얻을 수 없다.

. matches any character (except for line terminators)
어떤 문자와도 매칭이 된다.(라인 터미네이터 빼고)

아래와 같이 프린트를 해보면 아무런 결과도 출력되지 않는다.

t는 길이가 0 인 String 배열인 셈.

	public static void main(String[] args) {
		String path = "A.B.C";
		String[] t = path.split(".");
		for (String a : t) {
			System.out.println(a);
		}
	}

 

포인트  : "." → "\."

	public static void main(String[] args) {
		String path = "A.B.C";
		String[] t = path.split("\\.");
		for (String a : t) {
			System.out.println(a);
		}
	}

위 코드를 실행하면, 아래와 같이 출력 결과 확인 가능!

반응형

댓글