반응형
startsWith() : Boolean
val str = "abc,def/ghi,jkl/mno"
println(str.startsWith("ab")) //true
println(str.startsWith('b')) // false
- 문자열이 특정 문자열로 시작하는지 검사
- String, Char를 인자로 받음
indexOf(String) : Int
val str = "abc,def/ghi,jkl/mno"
println(str.indexOf('c')) //2
println(str.indexOf("bc")) //1
println(str.indexOf(",")) //3
println(str.indexOf('z')) //-1
- 특정 문자열이 포함된 첫번째 index반환
- 중복 시 첫 번째 특정 문자열의 index 반환
- 특정 문자열이 존재하지 않으면 -1 반환
- String, Char를 인자로 받음
substring() : String
val str = "abc,def/ghi,jkl/mno"
println(str.substring(2)) // c,def/ghi,jkl/mno
println(str.substring(0,2)) // ab
println(str.substring(0..2)) // abc
- 특정 범위에 속하는 문자열 반환
- IntRange(int...int), (startIndex,endIndex), startIndex를 인자로 받음
- startIndex = inclusive, endIndex = exclusive
- 즉 startIndex부터 endIndex 전까지의 문자열을 반환함
- startIndex만 입력하면 startIndex부터 끝까지를 반환함
substringAfter() : String
val str = "abc,def/ghi,jkl/mno"
println(str.substringAfter("abc,")) // def/ghi,jkl/mno
println(str.substringAfter(',')) // def/ghi,jkl/mno
- 특정 문자열 다음에 오는 문자열을 반환
- String, Char를 인자로 받음
splite() : List<String>
val str = "abc,def/ghi,jkl/mno"
println(str.split(',','/')) // [abc, def, ghi, jkl, mno]
val regex= "[,/]".toRegex()
println(str.split(regex)) // [abc, def, ghi, jkl, mno]
- 문자열을 특정 문자(문자열)들로 분할하여 List형태로 반환
- String, Char, Regex를 인자로 받음.
- 여러개 입력 가능
contains() : Boolean
val str = "abc,def/ghi,jkl/mno"
println(str.contains("bac")) //false
println(str.contains('a')) //true
- 특정 문자열이 포함되어 있는지 검사
- Char, String, Regex를 인자로 받음
* 이스케이프 시퀀스
- 이스케이프 시퀀스는 우리가 흔히 아는 \n(줄바꿈), \t(탭) 등과 같이 키보드로 입력하기 어려운 문자를 포함할 수 있게 해줌
- 이스케이프 시퀀스를 문자자체로 표현하고 싶다면 역슬래시를 하나 더 붙여주면 된다.
println("abc\tabc") //abc abc
println("abc\\tabc") //abc\tabc
- 1번 코드는 \t을 줄바꿈으로 인식하여 출력시 줄바꿈 처리가 된다
- 2번 코드는 \\n, 역슬래시를 앞에 붙여줌으로써 abc\tabc로 출력이 된다.
- "\\"는 역슬래시 자체를 문자로 표현하는 이스케이프 시퀀스이기 때문에 "\t"(탭)이 아닌 '\','t'으로 인식하게 해준다.
전체 예시 코드
val str = "abc,def/ghi,jkl/mno"
//startsWith()
println(str.startsWith("ab")) //true
println(str.startsWith('b')) // false
//indexOf()
println(str.indexOf('c')) //2
println(str.indexOf("bc")) //1
println(str.indexOf(",")) //3
println(str.indexOf('z')) //-1
//substring()
println(str.substring(2)) // c,def/ghi,jkl/mno
println(str.substring(0,2)) // ab
println(str.substring(0..2)) // abc
//substringAfter()
println(str.substringAfter("abc,")) // def/ghi,jkl/mno
println(str.substringAfter(',')) // def/ghi,jkl/mno
//split()
println(str.split(',','/')) // [abc, def, ghi, jkl, mno]
val regex= "[,/]".toRegex()
println(str.split(regex)) // [abc, def, ghi, jkl, mno]
//contains()
println(str.contains("bac")) //false
println(str.contains('a')) //true
마무리하며
코드 작성하면서 문자열에 대해서 공부했는데 코틀린에 유용한 함수들이 많은 것 같다
새롭게 알게 된 함수들 중에서 자주 쓸거같은 것들만 추려서 정리해봄
반응형
'학습 기록 > kotlin' 카테고리의 다른 글
| [Kotlin] 플랫폼 타입(Platform type) (0) | 2025.10.20 |
|---|---|
| [Kotlin] Class - getter, setter (0) | 2024.10.29 |
| [Kotlin] Collection(List, Set, Map) (1) | 2024.10.27 |
| [Kotlin] 반복문(while, for) (1) | 2024.10.20 |
| [Kotlin] 기본 문법 (0) | 2024.10.15 |
