Kotlin学习笔记(3)--字符串
字符串
字符串字面量
在 Kotlin 中,字符串可以通过双引号 "" 来定义。例如:
val greeting: String = "Hello, Kotlin!"
println(greeting) // 输出: Hello, Kotlin!
转义字符串使用反斜杠 \ 来表示特殊字符,如换行符、制表符等。
val escapedString = "Hello,\nKotlin!"
println(escapedString)
// 输出:
// Hello,
// Kotlin!
常见的转义字符包括:
\n: 换行\t: 制表符\\: 反斜杠\": 双引号
字符串使用三重双引号 """ 包围,可以包含任意字符,包括换行和不需要转义的特殊字符。
fun main() {
val rawString = """
|Hello,
|Kotlin!
""".trimMargin()
println(rawString)
}
- 使用三重双引号 (
""") 定义多行字符串时,每行前加上|符号的主要目的是配合trimMargin()函数使用。其目的:- 保持代码缩进:在多行字符串中添加
|符号,可以让字符串的内容与代码的缩进保持一致,提高代码的可读性。 - 灵活去除前导符号:使用
trimMargin()时,可以指定去除每行前的特定符号(默认是|),从而简化字符串的格式。
- 保持代码缩进:在多行字符串中添加
字符串模板
字符串模板允许在字符串中嵌入变量或表达式,使用 $ 符号。
简单变量插入
val name = "Alice"
val message = "Hello, $name!"
println(message) // 输出: Hello, Alice!
表达式插入
使用花括号 {} 包裹复杂表达式。
val a = 5
val b = 10
println("Sum of $a and $b is ${a + b}") // 输出: Sum of 5 and 10 is 15
字符串操作函数
Kotlin 提供了丰富的字符串操作函数,以下是一些常用的:
访问字符
val str = "Kotlin"
println(str[0]) // 输出: K
println(str[3]) // 输出: l
字符串长度
val str = "Kotlin"
println(str.length) // 输出: 6
字符串比较
val str1 = "Kotlin"
val str2 = "kotlin"
println(str1 == str2) // 输出: false
println(str1.equals(str2, ignoreCase = true)) // 输出: true
子字符串
val str = "Hello, Kotlin!"
println(str.substring(7, 13)) // 输出: Kotlin
替换与分割
val str = "one,two,three"
val replaced = str.replace(",", ";")
println(replaced) // 输出: one;two;three
val parts = str.split(",")
println(parts) // 输出: [one, two, three]
大小写转换
val str = "Kotlin"
println(str.toUpperCase()) // 输出: KOTLIN
println(str.toLowerCase()) // 输出: kotlin
修剪空白
val str = " Kotlin "
println(str.trim()) // 输出: Kotlin
不可变与可变字符串
不可变字符串
使用 val 声明 String 类型,内容不可变。
val immutableStr = "Hello"
immutableStr += ", Kotlin!" // 编译错误
可变字符串
使用 var 声明 String 类型,内容可变。
var immutableStr = "Hello"
immutableStr += ", Kotlin!" // 编译成功
字符串与字符数组
字符串转字符数组
val str = "Kotlin"
val charArray = str.toCharArray()
println(charArray.joinToString()) // 输出: K, o, t, l, i, n
字符数组转字符串
val chars = charArrayOf('K', 'o', 't', 'l', 'i', 'n')
val str = String(chars)
println(str) // 输出: Kotlin
StringBuilder 与 buildString 函数
对于需要频繁修改的字符串,使用 StringBuilder 可以提高性能,避免频繁创建新对象。
val sb = StringBuilder()
for (i in 1..5) {
sb.append("Line $i\n")
}
println(sb.toString())
// 输出:
// Line 1
// Line 2
// Line 3
// Line 4
// Line 5
Kotlin 还提供了 buildString 函数,简化 StringBuilder 的使用:
val result = buildString {
for (i in 1..5) {
append("Line $i\n")
}
}
println(result)
// 输出与上例相同
正则表达式匹配
Kotlin 支持正则表达式,用于复杂的字符串匹配和处理。
val regex = Regex("\\d+")
val str = "There are 123 numbers"
val match = regex.find(str)
println(match?.value) // 输出: 123

浙公网安备 33010602011771号