Hello, Android!

문자열 String 본문

Kotlin

문자열 String

lwndnjs93 2020. 2. 18. 23:06

기본 문자를 저장하는 타입은 Char은 기본형으로 처리가 되지만

문자열인 String은 기본형에 속하지 않는 특수한 자료형이다

다른 변수의 선언과 같이 

키워드 변수명: 자료형 = 값 의 형태로 선언한다

1
2
3
    var name1: String = "Kotlin"
    var name2: String = "java"
    var name3: String = "Kotlin"
 

한가지 특징으로는 위와 같이 1번 3번 줄에서 같은 값의 문자열을 저장하면

메모리 힙 영역의 스트링 풀에 Kotlin 이라는 문자열은 한번만 저장이 되고

스택 영역의 name1과 name3은 힙 영역의 0x10번을 같이 참조한다

 

문자열 표현식

코틀린에서 문자열 내에 다른 변수를 넣을때는 $ 기호를 사용한다

1
2
3
4
5
6
fun main(){
    var name1: String = "Kotlin"
 
    println("name1 : $name1")
 
}
 
 

위와 같이 사용할 경우 name1 : Kotlin 이 출력되는 것을 확인할수 있다

 

변수가 아닌 표현식을 문자열에 그대로 포함시키는 경우에는 중괄호를 사용한다

1
2
3
4
5
6
7
fun main(){
    var num: Int = 11
    var name1: String = "Kotlin"
    var name2: String = "a = ${num + 9}"
    println("name1 : $name2")
 
}
 

위와 같이 사용하게되면 var name2: String = "a = ${num + 9}" 에서

${num + 9}의 num에 할당된 값인 11이 들어와 "a = 20"이라는 문자열이 된다

 

1
2
3
4
5
6
7
fun main(){
    var num: Int = 11
    var name1: String = "Kotlin"
    var name2: String = "a = ${name1 + 9}"
    println("name1 : $name2")
 
}
 
 

문자열 표현식에 문자열("Kotlin")에 +9를 하니 별 문제 없이 "Kotlin9" 가 출력된다

 

1
2
3
4
5
6
fun main(){
    var name1: String = "Kotlin"
    var name2: String = "Java"
    println("name1 : \"$name1\" and name2 \"$name2\" ")
 
}
 

 백슬레시(\) 를 사용하게되면 기호를 문자로 취급하여 문자열에 넣을수 있다

위와 같이 사용한 결과(name1 : "Kotlin" and name2 "Java" ) 가 나왔다

백슬레시 뒤의 큰따옴표가 문자로 취급되어 출력된 것을 확인할 수 있다

 

 코틀린에는 형식화된 문자열(formattedString)이 존재한다

우선 사용법으로는 """ """ 안에 필요한 문자열을 넣는 것이다

안에 들어간 여러 줄의 문자열을 형태 그대로 출력해준다

1
2
3
4
5
6
7
fun main(){
    var name1: String = """
        kotlin v1.3
        java v13
    """
    println(name1)
}
 

위와 같이 형식화된 문자열을 출력한 결과 

 

3, 4번째 줄에서 문자열 앞에 들어간 공백까지 그대로 출력 되는것을 확인할 수 있다.

 

'Kotlin' 카테고리의 다른 글

스마트 캐스트, 자료형 검사  (0) 2020.02.22
코틀린의null  (0) 2020.02.19
import와 확장함수  (0) 2018.11.26
조건분기 when if  (0) 2018.11.22
코틀린 함수와 변수  (0) 2018.11.22