Kotlin 简明教程

Kotlin - Strings

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

在 Kotlin 中,我们有两种字符串 - 一种称为 Escaped String ,另一种称为 Raw String

  1. Escaped string 在双引号 (" ") 中声明,并且可能包含诸如 '\n'、'\t'、'\b' 等转义字符。

  2. Raw string 在三引号 (""" """) 中声明,并且可以包含多行文本,而无需任何转义字符。

Example

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 String Templates

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 String Object

Kotlin 字符串是一个对象,它包含许多可以对字符串执行特定操作的属性和函数,方法是在特定字符串变量后写上一个点字符 (.)。

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

Kotlin String Indexes

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

字符串索引从 0 开始,所以如果您想访问字符串的第 4 个元素,那么您应将索引指定为 3 才能访问第 4 个元素。

Example

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

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

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

a
A

Kotlin String Length

我们可以使用 Kotlin 字符串的 length 属性来找出其长度。

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

Example

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 String Last Index

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

Example

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

Changing Case of Strings

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

Example

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 String Concatenation

我们可以使用 + 运算符将两个字符串连接起来,也可以使用 plus() 函数将两个字符串连接起来。

Example

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

Trim Characters from a String

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

Example

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

Quotes Inside a String

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

Example

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

Finding a String inside a String

Kotlin 提供 indexOf() 函数来找出字符串中的文本。该函数返回字符串中首次出现指定文本的索引

Example

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

Comparing Two Strings

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

Example

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

   println(str1.compareTo(str2))
}

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

0

Kotlin getOrNull() function

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

Example

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() function

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

Example

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

   println(name.toString())
}

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

Zara Ali