코틀린 문자열은 자바 문자열과 100% 같다.
3.5.1 문자열 나누기
코틀린에서는 split 함수에 String, regex 타입을 확실하게 각각 받게끔 설계되어있다. 따라서 전달하는 값의 타입에 따라 정규식(regex)이나 일반 텍스트(String) 중 어느 것으로 문자열을 분리하는지 쉽게 알 수 있다.
3.5.2 정규식과 3중 따옴표로 묶은 문자열
// String 확장 함수를 사용해 경로 파싱하기
fun parsePath(path: String) {
val directory = path.substringBeforeLast("/")
val fullName = path.substringAfterLast("/")
val fileName = fullName.substringBeforeLast(".")
val extension = fullName.substringAfterLast(".")
println("Dir: $directory, name: $fileName, ext: $extension")
}
>>> parsepath("/Users/yole/kotlin-book/chapter.adoc")
Dir: /Users/yole/kotlin-book, name: chapter, ext: adoc
코틀린에서는 정규식을 사용하지 않고도 문자열을 쉽게 파싱할 수 있다.
정규식이 필요하다면 코틀린 라이브러리를 사용하면 더 편하다.
// 경로 파싱에 정규식 사용하기
fun parsePath(path: String) {
val regex = """(.+)/(.+)\.(.+)""".toRegex()
val matchResult = regex.matchEntire(path)
if (matchResult != null) {
val (directory, filename, extension) = matchResult.destructured
println("Dir: $directory, name: $filename, ext: $extension")
}
}
3.5.3 여러 줄 3중 따옴표 문자열
val kotlinLogo = """| //
.| //
.|/ \"""
코틀린의 3중 따옴표를 쓰면 줄 바꿈이 들어있는 프로그램 텍스트를 쉽게 문자열로 만들 수 있다.
단, 이스케이프 문자를 사용할 수 없으므로, $를 표기하기 위해서는 ${'$'} 형태로 사용해야한다.
'Kotlin' 카테고리의 다른 글
[Kotlin in Action] 4.1 클래스 계층 정의 (0) | 2025.03.15 |
---|---|
[Kotlin in Action] 3.6 코드 다듬기: 로컬 함수와 확장 (0) | 2025.03.14 |
[Kotlin in Action] 3.4 컬렉션 처리: 가변 길이 인자, 중위 함수 호출, 라이브러리 지원 (0) | 2025.03.14 |
[Kotlin in Action] 3.3 메소드를 다른 클래스에 추가: 확장 함수와 확장 프로퍼티 (0) | 2025.03.14 |
[Kotlin in Action] 3.2 함수를 호출하기 쉽게 만들기 (0) | 2025.03.14 |
댓글