📜  Kotlin 字符串

📅  最后修改于: 2022-05-13 01:55:05.828000             🧑  作者: Mango

Kotlin 字符串

字符数组称为字符串。 Kotlin字符串与Java字符串大部分相似,但具有一些新添加的功能。 Kotlin字符串本质上也是不可变的,这意味着我们不能更改字符串的元素和长度。
Kotlin 中的 String 类定义为:

class String : Comparable, CharSequence

在 Kotlin 中声明一个字符串,我们需要使用双引号(” “),单引号是不允许定义字符串的。
句法:

var variable_name = "Hello, Geeks"   
or
var variable_name : String = "GeeksforGeeks"

创建一个空字符串:
要在 Kotlin 中创建一个空字符串,我们需要创建一个 String 类的实例。

var variable_name = String()

字符串元素和模板 –

字符串元素 –
字符串中存在的字符、数字或任何其他符号称为字符串的元素。我们可以使用字符串[index] 轻松访问字符串的元素。元素存储在从索引 0 到 ( 字符串 .length – 1) 的字符串中。
在 Kotlin 中,您可以通过三种方式访问字符串元素:

  1. 使用索引:返回指定索引处的字符。
  2. 使用 get函数:返回作为参数传递给 get函数的指定索引处的字符。
  3. 遍历字符串:使用循环访问字符中的字符。

Kotlin 程序访问字符串的元素 -

Java
fun main(args: Array){
    // accessing string elements one by one
    var str = "Hello"
    println(str[0])
    println(str[1])
    println(str[2])
    println(str[3])
    println(str[4])
    // accessing the string elements using for loop
    var str2 = "Geeks"
    for(i in str2.indices){
        print(str2[i]+" ")
    }
}


Java
fun main(args: Array) {
      
    var n = 10
    println("The value of n is $n")
    // using string 
    val str = "Geeks"
    println("$str is a string which length is ${str.length}")
}


Java
fun main(args: Array) {
    var g = "GeeksForGeeks"
    var e = "Geeks"
    println(g.length)
    println(g.get(4))
    println(g.subSequence(0, 5))
    println(g.compareTo(e))
}


Java
fun main(args: Array) {
    // escaped string
    val str = "World \n is \n amazing"
    println(str)
}


Java
fun main(args: Array) {
// raw string - multiline string
    var str = """My
        |name
        |is
        |Yash
    """.trimMargin()
    println(str)
}


Java
fun main(args: Array) {
    var x = "GeeksForGeeks"
    var y = "GeeksForGeeks"
    var z = "Geeks"
    println(x===y) // true , as both are pointing to the same StringPool
    println(x==z) //false since values are not equal
    println(x===z) //false
}


输出:

H
e
l
l
o
G e e k s 

字符串模板 –
字符串模板表达式是一段代码,它被评估并将其结果返回到字符串中。两种字符串类型(转义和原始字符串)都包含模板表达式。字符串模板以美元符号 $ 开头,它包含变量名或花括号中的任意表达式。

Java

fun main(args: Array) {
      
    var n = 10
    println("The value of n is $n")
    // using string 
    val str = "Geeks"
    println("$str is a string which length is ${str.length}")
}

输出:

The value of n is 10
Geeks is a string which length is 5

String 中一些重要的属性和函数:

  • 长度:返回字符串的长度。
var s =" String"
println(s.length)
  • get(index):返回该特定索引处的字符。
s.get(3) // Output: - i
  • subSequence(start, end):返回从 start 开始到 end 结束但不包括 end 的子字符串。
s.subSequence(1, 4) // Output: - tri
  • str.compareTo(字符串):如果 str == 字符串返回 0。

使用上述属性和函数的 Kotlin 程序——

Java

fun main(args: Array) {
    var g = "GeeksForGeeks"
    var e = "Geeks"
    println(g.length)
    println(g.get(4))
    println(g.subSequence(0, 5))
    println(g.compareTo(e))
}

输出:

13
s
Geeks
8

字符串字面量–

Kotlin 中有两种类型的字符串字面量——

  1. 转义字符串
  2. 原始字符串

转义字符串
转义字符串用双引号(“….”)声明,它可能包含转义字符,如 /n、/t 等。
转义字符串的 Kotlin 程序 –

Java

fun main(args: Array) {
    // escaped string
    val str = "World \n is \n amazing"
    println(str)
}

输出:

World 
 is 
 amazing

原始字符串 - 多行字符串
原始字符串放在三引号内(“”“…”“”),它没有转义字符。它提供了将字符串写入多行的功能,因此也称为多行字符串。
原始字符串的 Kotlin 程序 –

Java

fun main(args: Array) {
// raw string - multiline string
    var str = """My
        |name
        |is
        |Yash
    """.trimMargin()
    println(str)
}

输出:

My
name
is
Yash

转义字符-一些转义字符是: -

  • \" : 用于双引号
  • \r : 用于回车
  • \n : 换行
  • \' : 单引号
  • \\ : 用于反斜杠
  • \t : 用于制表符
  • \b :用于退格

字符串相等 -

Kotlin 提供了一个附加功能,可以用两种不同的方式比较特定类型的实例。此功能使 Kotlin 与其他编程语言不同。
两种类型的平等是——

  • 结构平等
  • 参照平等

结构平等——
通过==运算符及其逆!=运算符符检查结构相等性。默认情况下,包含x==y的表达式被转换为该类型的equals()函数调用。
参照平等——
Kotlin 中的引用相等性通过===运算符及其逆!==运算符进行检查。仅当类型的两个实例都指向内存中的相同位置时,此相等才返回 true。当用于在运行时转换为原始类型的类型时,=== 检查将转换为 == 检查,!== 检查将转换为 != 检查。
Kotlin 程序展示了结构和引用的平等——

Java

fun main(args: Array) {
    var x = "GeeksForGeeks"
    var y = "GeeksForGeeks"
    var z = "Geeks"
    println(x===y) // true , as both are pointing to the same StringPool
    println(x==z) //false since values are not equal
    println(x===z) //false
}

输出:

true
false
false