Kotlin 字符串怎么用?

文章导读
Previous Quiz Next Kotlin 的 String 数据类型用于存储字符序列。String 值必须用双引号 (" ") 或三重引号 (""" """) 包围。
📋 目录
  1. A Kotlin 字符串模板
  2. B Kotlin 字符串对象
  3. C Kotlin 字符串索引
  4. D Kotlin 字符串长度
  5. E Kotlin 字符串最后一个索引
  6. F 字符串大小写转换
  7. G Kotlin 字符串连接
  8. H 从字符串中去除字符
  9. I 字符串中的引号
  10. J 在字符串中查找字符串
A A

Kotlin - 字符串



Previous
Quiz
Next

Kotlin 的 String 数据类型用于存储字符序列。String 值必须用双引号 (" ") 或三重引号 (""" """) 包围。

Kotlin 中有两种字符串类型——一种称为 Escaped String(转义字符串),另一种称为 Raw String(原始字符串)。

  • Escaped string(转义字符串)使用双引号 (" ") 声明,可以包含转义字符,如 '\n'、'\t'、'\b' 等。

  • Raw string(原始字符串)使用三重引号 (""" """) 声明,可以包含多行文本,且无需任何转义字符。

示例

fun main(args: Array<String>) {
   val escapedString : String  = "I am escaped String!\n"
   var rawString :String  = """This is going to be a
   multi-line string and will
   not have any escape sequence""";
   
   print(escapedString)
   println(rawString)
}

运行上述 Kotlin 程序,将生成以下输出:

I am escaped String!
This is going to be a
   multi-line string and will
   not have any escape sequence

为 String 指定数据类型是可选的,Kotlin 可以根据提供的双引号或三重引号识别变量为 String 类型。

如果要创建未赋值的 String 变量,则必须在声明时指定类型,否则会引发错误:

fun main(args: Array<String>) {
   val name : String
   name = "Zara Ali"
   println(name)
}

运行上述 Kotlin 程序,将生成以下输出:

Zara Ali

Kotlin 字符串模板

Kotlin 字符串模板是会被求值并将其结果插入到字符串中的代码片段。模板表达式以美元符号 ($) 开头,可以是一个名称或表达式。

fun main(args: Array<String>) {
   val name : String = "Zara Ali"   
   println("Name  - $name")  // 使用变量名的模板   
   println("Name length - ${name.length}")  // 使用表达式的模板。
}

运行上述 Kotlin 程序,将生成以下输出:

Name - Zara Ali
Name length - 8

Kotlin 字符串对象

Kotlin String 是一个对象,包含多个属性和函数,可以通过在特定字符串变量后添加点号 (.) 来对字符串执行某些操作。

本章将介绍一些重要的属性和函数,其余内容可在 Kotlin 最新版本的官方文档中找到。

Kotlin 字符串索引

Kotlin String 可以被视为字符序列,或者说 String 是字符数组。您可以通过方括号指定元素的索引来访问其元素。

String 索引从 0 开始,因此如果要访问字符串的第 4 个元素,应指定索引 3。

示例

fun main(args: Array<String>) {
   val name : String = "Zara Ali"

   println(name[3])
   println(name[5])
}

运行上述 Kotlin 程序,将生成以下输出:

a
A

Kotlin 字符串长度

可以使用 Kotlin 字符串的 length 属性来获取其长度。

Kotlin 函数 count() 也可以返回给定字符串的长度。

示例

fun main(args: Array<String>) {
   val name : String = "Zara Ali"
   println("The length of name :" + name.length)
   println("The length of name :" + name.count())      
}

运行上述 Kotlin 程序,将生成以下输出:

The length of name :8
The length of name :8

Kotlin 字符串最后一个索引

我们可以使用 Kotlin 字符串的 lastIndex 属性来找出字符序列中最后一个字符的索引。如果字符串为空,则返回 -1。

示例

fun main(args: Array<String>) {
   val name : String = "Zara Ali"
   println("The index of last character in name :" + name.lastIndex)
}

运行上述 Kotlin 程序,将生成以下输出:

The index of last character in name :7

字符串大小写转换

Kotlin 提供了 toUpperCase()toLowerCase() 函数,分别用于将字符串转换为大写和小写。

示例

fun main(args: Array<String>) {
   val name : String = "Zara Ali"
   println("Upper case of name :" + name.toUpperCase())
   println("Lower case of name :" + name.toLowerCase())
}

运行上述 Kotlin 程序,将生成以下输出:

Upper case of name :ZARA ALI
Lower case of name :zara ali

Kotlin 字符串连接

我们可以使用 + 操作符连接两个字符串,或者使用 plus() 函数连接两个字符串。

示例

fun main(args: Array<String>) {
   var firstName : String = "Zara "
   var lastName : String = "Ali"
   println("Full Name :" + firstName + lastName)   
   println("Full Name :" + firstName.plus(lastName) )
}

运行上述 Kotlin 程序,将生成以下输出:

Full Name :Zara Ali
Full Name :Zara Ali

从字符串中去除字符

我们可以使用 drop()dropLast() 函数从字符串中移除前几个或后几个字符。

示例

fun main(args: Array<String>) {
   var name : String = "Zara Ali"
   println("Remove first two characters from name : " + name.drop(2))   
   println("Remove last two characters from name : " + name.dropLast(2))
}

运行上述 Kotlin 程序,将生成以下输出:

Remove first two characters from name : ra Ali
Remove last two characters from name : Zara A

字符串中的引号

要在字符串中使用引号,请使用单引号 ('):

示例

fun main(args: Array<String>) {
   var str1 : String = "That's it"
   var str2 : String = "It's OK"

   println("str1 : " + str1)
   println("str2 : " + str2)
}

运行上述 Kotlin 程序,将生成以下输出:

str1 : That's it
str2 : It's OK

在字符串中查找字符串

Kotlin 提供了 indexOf() 函数来在字符串中查找文本。该函数返回字符串中指定文本第一次出现的位置索引。

示例

fun main(args: Array<String>) {
   var str : String = "Meditation and Yoga are synonymous with India"
   println("Index of Yoga in the string - " + str.indexOf("Yoga"))
}

运行上述 Kotlin 程序,将生成以下输出:

Index of Yoga in the string - 15

比较两个字符串

Kotlin 提供了 compareTo() 函数来比较两个字符串。如果两个字符串相等,该函数返回 0,否则返回 1。

示例

fun main(args: Array<String>) {
   var str1 : String = "Apple"
   var str2 : String = "Apple"
   println(str1.compareTo(str2))
}

运行上述 Kotlin 程序,将生成以下输出:

0

Kotlin getOrNull() 函数

Kotlin getOrNull() 函数返回给定索引处的字符,如果索引超出此字符序列的边界,则返回 null。

示例

fun main(args: Array<String>) {
   var name : String = "Zara"
   println(name.getOrNull(0))
   println(name.getOrNull(2))
   println(name.getOrNull(100))
}

运行上述 Kotlin 程序,将生成以下输出:

Z
r
null

Kotlin toString() 函数

Kotlin toString() 函数返回对象的字符串表示形式。

示例

fun main(args: Array<String>) {
   var name : String = "Zara Ali"
   println(name.toString())
}

运行上述 Kotlin 程序,将生成以下输出:

Zara Ali

Kotlin String Class

string 是一种在编程语言中用于表示文本而非数字的数据类型。string 可以是一系列字符的序列,可能包括字母、数字、符号甚至空格。它必须用双引号括起来才能被识别为 string

In Kotlin 中,string class 是一种基本数据类型,用于表示 charSequence。它是不可变的,这意味着一旦创建 string,就不能对其进行更改或操作。在 Kotlin 中,stringsstring class 的实例,该类提供了各种用于 string 操作的功能。

Properties

以下是在 Kotlin string class 中定义的 Properties −

Sr.No. Properties & Description
1 length

它返回此字符序列的长度。

2 indices

它返回此字符序列的有效字符索引范围。

函数

以下是在 Kotlin String 类中定义的函数 −

序号 函数 & 描述
1 get()

返回该字符串在指定索引处的字符。

2 isEmpty()

如果字符串为空则返回 true。

3 isNotEmpty()

如果字符串不为空则返回 true。

4 isBlank()

如果该字符序列为空或仅由空白字符组成(根据 Char.isWhitespace 判断),则返回 true。

5 first()

返回字符串的第一个字符。

6 last()

返回字符串的最后一个字符。

7 getOrNull()

返回指定索引处的字符。如果索引越界则返回 null。

8 equals()

比较两个字符串对象的相等性。

9 compareTo()

按字典序比较两个字符串。

10 startsWith()

判断字符序列是否以指定的前缀或字符开头。

11 endsWith()

判断字符串或字符序列是否以指定的后缀或字符结尾。

12 contains()

如果该字符序列包含指定的字符,则返回 true。

13 indexOf()

返回该字符串中指定字符首次出现的位置索引,从指定的 startIndex 开始搜索。

14 lastIndexOf()

返回该字符序列中指定字符最后一次出现的位置索引,从指定的 startIndex 开始搜索。

15 indexOfFirst()

返回与给定 predicate 匹配的第一个字符的索引。

16 indexOfLast()

返回与给定 predicate 匹配的最后一个字符的索引。

17 substring()

返回该字符序列在指定索引范围内的子字符串。

18 slice()

返回包含原始字符序列在指定索引处字符的字符序列。

19 uppercase()

返回该字符串转换为大写字母的副本。

20 lowercase()

返回该字符串转换为小写字母的副本。

21 trim()

返回已移除首尾空白的字符串。

22 trimStart()

返回已移除首部空白的该字符序列子序列。

23 trimEnd()

返回已移除尾部空白的该字符序列子序列。

24 replace()

返回一个新字符串,其中所有 oldChar 被替换为 newChar。

25 replaceFirst()

返回一个新字符串,其中首次出现的 oldChar 被替换为 newChar。

26 replaceRange()

使用替换字符串替换给定范围内的字符串部分。

27 map()

返回一个列表,其中包含将给定转换函数应用于原始字符序列中每个字符的结果。

28 filter()

返回一个字符串,其中仅包含原始字符串中与给定 predicate 匹配的字符。

29 reversed()

反转字符串的字符,并返回包含该字符串字符按相反顺序排列的新字符串。

30 repeat()

通过将原始字符串重复指定次数来返回一个新字符串。

31 split()

根据指定的分隔符或分隔符集将字符串分割成子字符串。

32 joinToString()

通过组合集合的元素返回字符串表示。

33 toCharArray()

返回包含该字符串字符的 CharArray。

34 toByteArray()

使用指定的字符集编码该字符串的内容,返回 byteArray。

35 toIntOrNull()

将字符串解析为 Int 数字,如果字符串不是有效数字表示则返回 null。

36 toDoubleOrNull()

将字符串解析为 double,如果字符串不是有效数字表示则返回 null。

37 toBoolean()

如果该字符串非空且内容等于单词 "true",则返回 true。

38 toString()

在 Kotlin 中,当我们在 class 中重写 "toString()" 方法时使用。

39 matches()

如果整个字符序列包含指定的正则表达式,则返回 true。

40 find()

返回与给定 predicate 匹配的第一个字符。

41 findAll()

用于在字符序列或字符串中查找正则表达式的所有匹配项。

42 forEach()

对每个字符执行给定的操作。

测验时间 (面试与考试准备)

Q 1 - 以下哪项关于 Control Flow Statement 的描述是正确的?

A - Control flow 控制程序的执行

B - Loops 和 Decision Statements 是 control flow 的组成部分

C - Control flow 是现代编程语言的重要组成部分

D - 以上全部

答案:D

解释

所有提到的陈述关于 control flow 都是正确的。

Q 2 - 以下哪项是 Kotlin 中的 control flow statement?

A - String

B - Fun

C - When

D - 以上都不是

答案:C

解释

这里关键字 when 是 Kotlin Control Flow statements 的一部分

Q 3 - 如果没有 control flow statements,几乎不可能编写计算机程序?

A - 正确

B - 错误

答案:A

解释

是的,这是正确的,control flow statements 是任何编程语言编写程序的重要组成部分。