문자열에 대한 다양한 사용법에 대해 알아보자
substring 함수, indexOf 함수
- substring은 자를 문자열의 위치(index)만 알고있다면,
(해당 인덱스서 부터 끝까지 || 해당 인덱스서 부터 원하는 인덱스까지) 문자열을 잘라 반환할수 있다.
//이름만 추출하기
fun main(args: Array<String>) {
val msg:String = "Hello. My name is Choi."
val startIndex:Int = msg.indexOf('C')
val name:String = msg.substring(startIndex) //startIndex 부터 마지막까지 자른 문자열을 반환해라
val frontMsg:String = msg.substring(0 until startIndex) //0부터 startIndex 이전까지 자른 문자열을 반환해라
print(frontMsg)
println(name)
}
split 함수
- 구분자(delimiter)를 받아 구분자에 맡게 문자열을 리스트 형태로 반환합니다.
//구분자에 맞춰 문자열 분리하기
fun main(args: Array<String>) {
val menuString: String = "Hamburger, Cola, Cider, Pasta"
val menuList: List<String> = menuString.split(", ")
for (menu in menuList) println(menu)
}
- split 함수는 List를 반환하므로 해체 선언(destructuring declaration)이라는 간단한 문법도 지원한다.
//split 해체선언 예제
fun main(args: Array<String>) {
val menuString: String = "Hamburger, Cola, Cider, Pasta"
val (foodBurger, drinkCola, drinkCider, foodPasta) = menuString.split(", ")
println(foodBurger)
println(drinkCola)
println(drinkCider)
println(foodPasta)
}
replace 함수
- 특정 문자를, 지정한 문자로 변경 가능하게 하는 함수입니다.
fun main(args: Array<String>) {
var msg:String = "hello world"
msg = msg.replace(Regex("[eld]")){ //eld에 해당하는 문자들은 변경합니다.
when(it.value){
"e" -> "E"
"l" -> "L"
"d" -> "D"
else -> it.value
}
}
println(msg)
}
문자열 비교
- 문자와 문자의 값이 동일한지 비교하는 예제 입니다.
- 문자열 값에 대한 비교 연산자는 "=="이며 객체에 대한 참조 비교 연산자는 "==="을 사용한다.
fun main(args: Array<String>) {
var userName:String = "Choi"
if(userName == "Choi") println("유저의 이름이 Choi입니다.")
else println("유저의 이름이 Choi가 아닙니다.")
}
유니코드
- Char는 유니코드 문자이다
- 알파벳, 아이콘, 이모지, 상형 문자 등을 표기할때 사용한다.
- 아래 코드는 두 변수 모두 A를 출력한다.
fun main(args: Array<String>) {
var capitalA:Char ='A'
val unicodeA:Char = '\u0041'
println(capitalA)
println(unicodeA)
}
문자열 하나씩 처리하기
- forEach는 문자열을 하나씩 처리할 수 있도록 하며 forEach문은 List에서도 사용된다.
fun main(args: Array<String>) {
val msg:String = "hello kotlin"
msg.forEach {
println("$it")
}
}
문자열 -> 숫자로 변환
fun main(args: Array<String>) {
val price:String = "4000"
var addPrice:Int = 300
addPrice += price.toInt()
println(addPrice)
}
[Kotlin] Data Class (데이터 클래스) (0) | 2021.09.21 |
---|---|
[Kotlin] 표준함수 (0) | 2020.12.06 |
[Kotlin] 익명 함수와 함수 타입 (1) | 2020.12.05 |
[Kotlin] 함수(Function) (0) | 2020.12.04 |
[Kotlin] 조건문과 조건식 (If, When, In) (0) | 2020.09.24 |