Kotlin - 字符串



Kotlin 的字符串数据类型用于存储一系列字符。字符串值必须用双引号 (" ") 或三引号 (""" """) 括起来。

Kotlin 中有两种字符串:一种称为转义字符串,另一种称为原始字符串

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

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

示例

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

为字符串指定数据类型是可选的,Kotlin 可以根据给定的双引号或三引号识别变量是字符串。

如果要创建未赋值的字符串变量,则必须在声明变量时指定类型,否则会报错。

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")  // Using template with variable name
   
   println("Name length - ${name.length}")  // Using template with expression.
}

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

Name - Zara Ali
Name length - 8

Kotlin 字符串对象

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

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

Kotlin 字符串索引

Kotlin 字符串可以被视为一系列字符,或者可以说字符串是字符数组。可以使用方括号指定元素的索引来访问其元素。

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

示例

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

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

答案:D

解释

所有提到的语句关于控制流都是正确的。

问2 - 以下哪个是 Kotlin 中的控制流语句?

A - 字符串

B - Fun

C - When

D - 以上都不是

答案:C

解释

这里的关键字when是 Kotlin 控制流语句的一部分。

问3 - 如果我们没有控制流语句,那么编写计算机程序几乎是不可能的?

A - 正确

B - 错误

答案:A

解释

是的,这是正确的,控制流语句是任何编程语言编写程序的重要组成部分。

广告