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 可以因为给定的双引号或三引号而理解 a 变量是字符串。

如果你想创建一个字符串变量而不分配值,那么你必须在声明变量时指定类型,否则会引发错误:

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 String 是一个对象,它包含许多属性和函数,可以通过在特定字符串变量后面写入点字符 (.) 来对字符串执行某些操作。

我们将在本章中看到一些重要的属性和函数,其余的你可以在 Kotlin 最新版本的官方文档中找到。

Kotlin 字符串索引

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

字符串索引从 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属性来找出 char 序列中最后一个字符的索引。如果字符串为空,则返回 -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-乐趣

C-何时

D - 以上都不是

答案:C

解释

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

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

A - 正确

B - 错误

答案:A

解释

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