Kotlin 字符串

Kotlin Strings

字符串用于存储文本。

字符串包含由双引号包围的字符集合:

实例
  1. fun main() {
  2. var greeting = "Hello"
  3. println(greeting)
  4. }

Java 不同,您不必指定变量应该是字符串。Kotlin 非常智能,能够理解上面示例中的问候语变量是一个 a String 字符串,因为有双引号。

但是,与其他数据类型一样,如果您坚持,也可以指定类型:

实例
  1. fun main() {
  2. var greeting: String = "Hello"
  3. println(greeting)
  4. }

注意:如果要创建 String 字符串而不指定值(稍后再指定值),则必须在声明变量时指定类型:

这是正确的:

  1. fun main() {
  2. var name: String
  3. name = "John"
  4. println(name)
  5. }

这样会产生错误:

  1. fun main() {
  2. var name
  3. name = "John"
  4. println(name)
  5. }

访问字符串

要访问字符串的字符(元素),必须参考方括号内的索引。字符串索引以0开头。在下面的示例中,我们访问 txt 中的第一个和第三个元素:

实例
  1. fun main() {
  2. var txt = "Hello World"
  3. println(txt[0]) // first element/character
  4. println(txt[2]) // third element/character
  5. }
[0] 是第一个元素,[1] 是第二个元素,[2] 是第三个元素,等等。

字符串长度

Kotlin 中的字符串是一个对象,它包含可以通过写入点字符(.)对字符串执行某些操作的属性和函数在特定字符串变量之后。例如,字符串的长度可以通过 length 属性找到:

实例
  1. fun main() {
  2. var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  3. println("The length of the txt string is: " + txt.length);
  4. }

字符串函数

有许多字符串函数可用,例如 toUpperCase()toLowerCase():

实例
  1. fun main() {
  2. var txt = "Hello World"
  3. println(txt.toUpperCase())
  4. println(txt.toLowerCase())
  5. }

对比字符串

compareTo(string) 函数比较两个字符串,如果两个字符串相等,则返回 0:

实例
  1. fun main() {
  2. var txt1 = "Hello World"
  3. var txt2 = "Hello World"
  4. println(txt1.compareTo(txt2)) // Outputs 0 (they are equal)
  5. }

在字符串中查找字符串

indexOf() 函数的作用是:返回字符串(包括空格)中第一次出现的指定文本的索引(位置):

实例
  1. fun main() {
  2. var txt = "Please locate where 'locate' occurs!"
  3. println(txt.indexOf("locate"))
  4. }
记住,Kotlin 从 0 开始计算位置。
0 是字符串中的第一个位置,1 是第二个位置,2 是第三个位置。。。

字符串中的引号

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

实例
  1. fun main() {
  2. var txt1 = "It's alright"
  3. var txt2 = "That's great"
  4. println(txt1)
  5. println(txt2)
  6. }

字符串串联

+ 运算符可以在字符串之间使用,将它们添加到一起以生成新字符串。这叫做 concatenation 串联:

实例
  1. fun main() {
  2. var firstName = "John"
  3. var lastName = "Doe"
  4. println(firstName + " " + lastName)
  5. }
请注意,我们添加了一个空文本 (“ “),以便在打印时在 firstName 和 lastName 之间创建一个空格。

还可以使用 plus() 函数连接两个字符串:

实例
  1. fun main() {
  2. var firstName = "John "
  3. var lastName = "Doe"
  4. println(firstName.plus(lastName))
  5. }

字符串模板/插值

也可以使用 "string templates" 字符串模板代替串联,这是在字符串中添加变量和表达式的一种简单方法。

只需引用带有 $ 符号的变量即可:

实例
  1. fun main() {
  2. var firstName = "John"
  3. var lastName = "Doe"
  4. println("My name is $firstName $lastName")
  5. }
"String Templates" 字符串模板是 Kotlin 的一个流行功能,因为它减少了代码量。例如,您不必像我们在连接示例中所做的那样,在 firstName 和 lastName 之间指定空白。