和 Java 一樣,String 是可不變的寄雀。方括號(hào) [] 語法可以很方便的獲取字符串中的某個(gè)字符,也可以通過 for 循環(huán)來遍歷:
for (c in str) {
println(c)
}
Kotlin 支持三個(gè)引號(hào) """
擴(kuò)起來的字符串贯卦,支持多行字符串勉耀,比如:
fun main(args: Array<String>) {
val text = """
多行字符串
多行字符串
"""
println(text) // 輸出有一些前置空格
}
String 可以通過 trimMargin() 方法來刪除多余的空白佩厚。
fun main(args: Array<String>) {
val text = """
|多行字符串
|菜鳥教程
|多行字符串
|Runoob
""".trimMargin()
println(text) // 前置空格刪除了
}
默認(rèn) | 用作邊界前綴辉阶,但你可以選擇其他字符并作為參數(shù)傳入创倔,比如 trimMargin(">")。
字符串模板
$ 表示一個(gè)變量名或者變量值
$varName 表示變量值
${varName.fun()} 表示變量的方法返回值:
var a = 1
// 模板中的簡單名稱:
val s1 = "a is $a"
a = 2
// 模板中的任意表達(dá)式:
val s2 = "${s1.replace("is", "was")}, but now is $a"
$在字符串里的表示方法
原生字符串和轉(zhuǎn)義字符串內(nèi)部都支持模板琢歇。 如果你需要在原生字符串中表示字面值 $ 字符(它不支持反斜杠轉(zhuǎn)義)兰怠,你可以用下列語法:
fun main(args: Array<String>) {
val price = """
${'$'}9.99
"""
println(price) // 求值結(jié)果為 $9.99
}
when (language) {
"EN" -> "Hello!"
"FR" -> "Salut!"
"IT" -> "Ciao!"
else -> "Sorry, I can't greet you in $language yet"
}