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 中,您可以通过三种方式访问字符串元素:
- 使用索引:返回指定索引处的字符。
- 使用 get函数:返回作为参数传递给 get函数的指定索引处的字符。
- 遍历字符串:使用循环访问字符中的字符。
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 中有两种类型的字符串字面量——
- 转义字符串
- 原始字符串
转义字符串
转义字符串用双引号(“….”)声明,它可能包含转义字符,如 /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