跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Kotlin字符串基础
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{Note|本教程适用于Kotlin初学者以及需要巩固字符串基础的程序员。所有示例基于Kotlin 1.9+版本。}} = Kotlin字符串基础 = '''字符串(String)'''是编程中最常用的数据类型之一,表示由字符组成的不可变序列。在Kotlin中,字符串是`String`类的实例,提供了丰富的操作方法和属性。 == 字符串的声明 == Kotlin提供两种字符串声明方式: === 转义字符串(Escaped Strings) === 使用双引号声明,支持转义字符(如`\n`, `\t`等): <syntaxhighlight lang="kotlin"> val simpleString = "Hello, Kotlin!\nThis is a new line." println(simpleString) </syntaxhighlight> 输出: <pre> Hello, Kotlin! This is a new line. </pre> === 原始字符串(Raw Strings) === 使用三重引号声明,保留所有格式(包括换行和缩进): <syntaxhighlight lang="kotlin"> val rawString = """ This is a raw string: * Line 1 * Line 2 Indentation is preserved! """.trimIndent() println(rawString) </syntaxhighlight> 输出: <pre> This is a raw string: * Line 1 * Line 2 Indentation is preserved! </pre> == 字符串模板 == Kotlin支持'''字符串模板''',允许在字符串中直接嵌入表达式: <syntaxhighlight lang="kotlin"> val name = "Alice" val age = 25 println("My name is $name and I'm ${age + 5} years old in 5 years") </syntaxhighlight> 输出: <pre> My name is Alice and I'm 30 years old in 5 years </pre> == 字符串常用操作 == 以下是Kotlin字符串的核心操作方法: === 长度与空检查 === <syntaxhighlight lang="kotlin"> val str = "Kotlin" println("Length: ${str.length}") // 6 println("Is empty: ${str.isEmpty()}") // false </syntaxhighlight> === 访问字符 === 可以通过索引或`get()`方法访问: <syntaxhighlight lang="kotlin"> val str = "Android" println(str[0]) // 'A' println(str.get(3)) // 'r' </syntaxhighlight> === 子字符串 === <syntaxhighlight lang="kotlin"> val str = "Programming" println(str.substring(3, 7)) // "gram" println(str.dropLast(4)) // "Program" </syntaxhighlight> === 字符串比较 === Kotlin提供两种比较方式: <syntaxhighlight lang="kotlin"> val a = "kotlin" val b = "Kotlin" println(a == b) // false (值比较) println(a.equals(b)) // false println(a.equals(b, true)) // true (忽略大小写) </syntaxhighlight> == 字符串转换 == 常见转换操作示例: <syntaxhighlight lang="kotlin"> val numStr = "123" println(numStr.toInt()) // 123 val mixedCase = "KoTLiN" println(mixedCase.toLowerCase()) // "kotlin" println(mixedCase.toUpperCase()) // "KOTLIN" </syntaxhighlight> == 字符串拼接 == 多种拼接方式对比: <syntaxhighlight lang="kotlin"> val s1 = "Hello" val s2 = "World" // 方式1: +操作符 println(s1 + " " + s2) // "Hello World" // 方式2: 字符串模板 println("$s1 $s2") // "Hello World" // 方式3: joinToString val list = listOf(s1, s2) println(list.joinToString(" ")) // "Hello World" </syntaxhighlight> == 实际应用案例 == === 用户输入处理 === <syntaxhighlight lang="kotlin"> fun processInput(input: String) { when { input.isBlank() -> println("Empty input") input.length > 10 -> println("Too long (${input.length} chars)") else -> println("Processing: ${input.trim()}") } } processInput(" Hello ") // 输出: Processing: Hello </syntaxhighlight> === 密码强度检查 === <syntaxhighlight lang="kotlin"> fun checkPassword(password: String): String { return when { password.length < 6 -> "Weak" password.any { it.isDigit() } && password.any { it.isLetter() } -> "Strong" else -> "Medium" } } println(checkPassword("abc123")) // 输出: Strong </syntaxhighlight> == 性能考虑 == Kotlin字符串是不可变的,频繁修改时应使用`StringBuilder`: <syntaxhighlight lang="kotlin"> val builder = StringBuilder() repeat(100) { builder.append(it).append(", ") } println(builder.toString().removeSuffix(", ")) </syntaxhighlight> == 字符串与Unicode == Kotlin完全支持Unicode字符: <syntaxhighlight lang="kotlin"> val emoji = "I ❤ Kotlin \uD83D\uDE00" println(emoji) // 输出: I ❤ Kotlin 😀 </syntaxhighlight> == 总结 == {| class="wikitable" ! 特性 !! 说明 |- | 不可变性 || 字符串创建后不可修改 |- | 双引号字符串 || 支持转义字符 |- | 三重引号字符串 || 保留原始格式 |- | 字符串模板 || 支持`$`表达式嵌入 |- | 丰富API || 提供100+实用方法 |} <mermaid> pie title 字符串操作使用频率 "访问/查询" : 35 "转换" : 25 "比较" : 20 "拼接" : 15 "其他" : 5 </mermaid> 在数学表达式中,字符串长度公式表示为:<math>length(s) = n</math>,其中<math>n</math>是字符数量。 {{Warning|避免在循环中使用`+`拼接字符串,这会导致性能问题。}} [[Category:编程语言]] [[Category:Kotlin]] [[Category:Kotlin字符串]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Mbox
(
编辑
)
模板:Note
(
编辑
)
模板:Warning
(
编辑
)
模块:Arguments
(
编辑
)
模块:Message box
(
编辑
)
模块:Message box/ambox.css
(
编辑
)
模块:Message box/configuration
(
编辑
)
模块:Yesno
(
编辑
)