Kotlin入门系列(四) String

Wang 2017-05-25 15:06:37

字符串

字符串是由 String 表示的。字符串是不变的。字符串的元素可以通过索引操作读取: s[i] 。字符串可以用 for 循环迭代:

for (c in str) {
    println(c)
}

字符串字面量

Kotlin 有两种类型的字符串字面量:一种是可以带分割符的,一种是可以包含新行以及任意文本的。带分割符的 string 很像 java 的 string:

val s = "Hello World!\n"

转义是使用传统的反斜线的方式。参见Characters,以获得支持的转义序列。

整行String 是由三个引号包裹的("""),不可以包含分割符但可以包含其它字符:

val text = """
    for (c in "foo")
        print(c)
"""

你可以通过trim-margin()函数移除空格:

val text = """
    |Tell me and I forget.
    |Teach me and I remember.
    |Involve me and I learn.
    |(Benjamin Franklin)
    """.trimMargin()

字符串模板

字符串可以包含模板表达式,即可求值的代码片段,并将其结果连接到字符串中。一个模板表达式由一个 $ 开始并包含另一个简单的名称

val i = 10
val s = "i = $i" // 求值为 "i = 10"

或者是一个带大括号的表达式:

val s = "abc"
val str = "$s.length is ${s.length}" // 求职为 "abc.length is 3"

模板既可以原始字符串中使用,也可以在转义字符串中使用。如果需要在原始字符串(不支持反斜杠转义)中表示一个文字$字符,那么可以使用以下语法:

val price = """
${'$'}9.99
"""