1.前言
本篇文章详细介绍Kotlin中的String
类型,学会如何进行字符串的拼接,查找,比较和截取。
让我们能够通过一篇文章,了解Kotlin中的String
对象的各种使用。
2.介绍
在Kotlin中,通过""
双引号和"""
三引号来定义String
。对于Kotlin来说String
其实就是bytes
的数组。我们看到的是String
。其实对于Kotlin来说这是一个数组对象。我们把握了这个思路后面的各种方法就能更直观的理解。
在Kotlin中String
是不可变字符串,和Java中的String
是一样的概念。也就是每一个String
都会创建一个对象,如果进行String拼接的时候,就会创建多个String
对象了。Kotlin
中也有可变字符串StringBuilder
。在这里先不介绍StringBuilder
对象了。后面有机会再介绍。
2.1 字符串创建
fun main(args: Array<String>) {
var str: String = "这是字"
for (c in str) {
println(c)
}
}
//输出
这
是
字
我们如果使用三引号创建的就是字符行了
var str1 ="""
白日依山尽
黄河入海流
"""
println(str1)
//输出
白日依山尽
黄河入海流
在多行字符串中,各种转义字符是不支持的。
在上面的例子中字符行前面会有空行。如果我们想进行删除空行。可以采用"|"配合trimMargin()
函数处理。
实例:
var str1 ="""
|白日依山尽
|黄河入海流
""".trimMargin()
println(str1)
这样输出的就没有了开头的空行了。
3. byteArray 与 CharArray 转换 String
在Kotlin中有提供顶级函数,可以直接进行String 的转换。
3.1 byteArray 转String
字节数组转换成字符串函数:该函数是Kotlin自带的系统api我们可以直接使用。
fun String(bytes : ByteArray, offset: Int,length :Int, charset :Charset):String
其中的参数介绍如下所示:
- bytes:要转换的字节数组
- offset:字节数组下标开始的位置(从指定下标开始获取,并转换。默认为0开始,可以省略)
- length:转换的字节的长度(打算从字节数组提取的数量,默认为整个字节数组的长度,默认可以省略)
- charset:字符编码。(utf-8,gbk等字符编码。默认可以省略)
示例:
fun main(args:Array<String>){
val bytes = byteArrayOf(97,98,99) // a,b,c 的字节数
val n1 = String(bytes)
println(n1) //输出abc
val n2 = String(bytes,1,2)
println(n2) //输出 bc
}
上面的示例中,我们如果没有填写字符编码,就会按照系统默认的字符集进行处理了。
3.2 CharArray 转String
字符数组转字符串函数:该函数是Kotlin自带的系统api我们可以直接使用。
fun String(chars : CharsArray, offset: Int,length :Int):String
参数详细介绍:
- chars:要转换的字符数组对象
- offset:要转换的字符数组的开始位置下标(默认从0开始)
- length:转换的字符的长度(也就是字符数组中我们要取的长度,默认是整个字符数组的长度)
char相较于byte 没有了编码的转换。
示例:
fun main(args:Array<String>){
val chars = charArrayOf('a','b','c','d')
val n1 = String(chars)
println(n1) //输出abcd
val n2 = String(chars,1,2)
println(n2) //输出 bc
}
两种转换的介绍,到这里就是结束了。
4. 字符串拼接
我们在开始介绍过Stirng 是一个不可变字符串。每次拼接的时候都会创建一个新的String对象。数据比较多的情况下,不太建议直接String拼接。但是在比较少的情况下,也可以灵活使用。
相较于java的String对象,Kotlin中String 支持直接使用+
或者+=
进行String 对象的拼接。
示例:
fun main(args:Array<String>){
val chars ="zin"
chars +="yan"
chars +=".com"
println(chars) //输出 zinyan.com
val v1 ="zin"
val v2 ="yan"
val s1 = v1+v2
println(s1) //输出 zinyan
}
除了这种直接的拼接以外,还支持混合对象的拼接。
示例:
fun main(args:Array<String>){
val v1 =2022
val v2 ="新年快乐 "+v1
println(v2) //输出 新年快乐 2022
val s1 = 'A'
val s2 ="Z同学的等级是"+s1
println(s2) //输出 Z同学的等级是A
}
我上面的示例只是一些基本属性。除此以外还支持更多包括我们自定义的属性进行拼接。
当我们进行拼接的时候,Kotlin其实会自动调用其他对象的toString方法获取该对象的String值。然后进行拼接成新的String。
关于字符串的基本就介绍到这里吧。下篇介绍 字符串的查找和比较吧
评论区