본문 바로가기
Language/Kotlin

[Kotlin IN ACTION] - Kotlin 문자열 다루기(split)

by Jman 2022. 7. 21.

자바 개발자라면 String의 split 을 잘 알 것이다.

자바의 split 메소드는 점(.)을 사용해서 문자열 분리를 할 수가 없다.

그 이유는 split의 구분 문자열은 실제로는 정규식이기 때문이다. 따라서 마침표(.)는 모든 문자를 나타내는 정규식으로 해석된다.

// Java
String s = "12.345-6.A";
String[] sArr = s.split(".");
for (String str : sArr) {
    System.out.print(str + ", ");
}
// 결과는 빈 배열을 반환한다.
// Kotlin
val str : String = "12.345-6.A"
println(str.split("\\.|-".toRegex()))

Kotlin 은 명시적으로  toRegex 확장함수를 사용해 문자열을 정규식으로 변환할 수 있다.

 

val str : String = "12.345-6.A"
println(str.split("-", "."))

또는 위와 같이 문자를 인자로 넘겨줘도 된다.