programming/JAVA

[Java] 특수문자를 사용한 문자열 split

LeeBorn 2022. 6. 12. 15:45
반응형

Java

자바에서 특수문자를 사용한 split을 사용할 때는 주의해서 사용해야 한다.

콤마(,)를 사용할 때는 아래와 같이 사용하면 문자열을 구분자로 나누어 배열로 사용할 수 있다.

String str2 = "AAAAA,BBBBB,CCCCC";

for (String s : str2.split(",")) {
	System.out.println(s);
}

 

하지만, 특수문자를 사용할 때는 아래와 같이 "\\"를 포함하여 사용해야, 구분자로 사용해서 배열로 나눌 수 있다.

@Test
@DisplayName("split 테스트")
void splitTest(){
	String str = "AAAAA|BBBBB|CCCCC";

	String[] expect1 = new String[]{"A","A","A","A","A","|","B","B","B","B","B","|","C","C","C","C","C"};
	String[] expect2 = new String[]{"AAAAA", "BBBBB", "CCCCC"};

	String[] splitArr1 = str.split("");
	String[] splitArr2 = str.split("|");
	String[] splitArr3 = str.split("\\|");

	assertTrue(Arrays.equals(expect1, splitArr1));
	assertTrue(Arrays.equals(expect1, splitArr2));
	assertTrue(Arrays.equals(expect2, splitArr3));
}

test 결과

"|"를 단독으로 split의 구분자로 사용했을 때는, 구분자를 사용하지 않았을 때와 같은 결과를 볼 수 있다.

하지만 "\\|" 형식으로 사용하면 일반적인 구분자를 사용했을 때와 같은 결과를 받을 수 있다.

 

- 위 작성된 글에는 잘못된 부분이 있을 수 있습니다. 알려주시면 수정하겠습니다.

※ info
IDE : IntelliJ IDEA 2022.1.2 (Ultimate Edition)
JDK: openjdk version "11" 2018-09-25
반응형