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
posted @ 2024-10-19 19:15  Jacob-Chen  阅读(95)  评论(0)    收藏  举报