您的位置:

Kotlin String全解析

Kotlin是一种在Java虚拟机上运行的静态类型编程语言,拥有许多类似Java的特性,但Kotlin也有自己的一些特点。在Kotlin中,String是不可变的类型和一个基本类型。本文将对Kotlin String进行详细解析。

一、字符串的定义

Kotlin String可以使用工厂函数或直接使用双引号定义。下面是一个示例:


val str1 = "Hello Kotlin" 
val str2 = String(charArrayOf('H', 'e', 'l', 'l', 'o', ' ', 'K', 'o', 't', 'l', 'i', 'n'))

不同于Java,Kotlin对于String类型有一个明确的字符类型Char,所以可以使用单引号将字符定义为一个Char类型。一个示例如下:


val char1: Char = 'a'
val char2 = 'b'

二、字符串拼接

字符串拼接是Kotlin中常用的操作。最朴素的方法是使用+符号。


val s1 = "Hello"
val s2 = "World"
val s3 = s1 + ", " + s2 + "!"
println(s3) //输出Hello, World!

但是,这种方法并不理想,因为每个+运算符都导致一个新的String对象的创建。下面是一种更好的方法(使用模板表达式):


val s4 = "$s1, $s2!"
println(s4) //输出Hello, World!

除此之外,还可以使用"""三个双引号将多行文本变成字符串,并可以通过trimMargin()函数来清除空格:


val text = """
    1
    2
    3
""".trimMargin()

三、字符串函数

Kotlin String提供了很多有用的函数:

1. length()

返回字符串的长度


val str = "abcde"
println(str.length) //输出5

2. get()

获取指定索引位置的字符


val str = "abcde"
println(str.get(2)) //输出c

下面是使用get()获取子字符串的例子:


val str = "abcde"
println(str.subSequence(1, 4)) //输出bcd

3. contains()

检测字符串是否包含指定的字符序列


val str = "abcde"
println(str.contains("cd")) //输出true

4. startsWith()

检测字符串是否以指定的字符序列开头


val str = "abcde"
println(str.startsWith("ac")) //输出false

5. endsWith()

检测字符串是否以指定的字符序列结尾


val str = "abcde"
println(str.endsWith("de")) //输出true

6. indexOf()

返回指定字符或子字符串在该字符串中第一次出现处的索引


val str = "abcde"
println(str.indexOf("c")) //输出2

7. lastIndexOf()

返回指定字符或子字符串在该字符串中最后一次出现处的索引


val str = "abcdec"
println(str.lastIndexOf("c")) //输出4

8. replace()

将指定字符或子字符串替换成另外一个字符或子字符串


val str = "abcde"
println(str.replace("c", "C")) //输出abCde

9. toInt()

将字符串转换为整数


val str = "123"
println(str.toInt()) //输出123

四、字符串转义和原始字符串

Kotlin String与Java一样,使用\作为转义字符。下面是一些常用的转义字符:

  • \n:换行符
  • \t:水平制表符
  • \b:退格
  • \r:回车

与Java不同的是,Kotlin String也支持原始字符串,并使用"""三个双引号来表示:


val str = """Hello
            World
            """

原始字符串不支持转义字符,这样做的好处是可以方便地表示文件路径等特殊字符。

五、字符串转换成数字的函数比较

在Kotlin中,可以使用多种函数将字符串转换为数字。

toInt():String->Int


val s = "123"
val i:Int = s.toInt()
println(i) //输出123

toDouble():String->Double


val s = "123.456"
val d:Double = s.toDouble()
println(d) //输出123.456

toFloat():String->Float


val s = "123.456"
val f:Float = s.toFloat()
println(f) //输出123.456

toLong():String->Long


val s = "123"
val l:Long = s.toLong()
println(l) //输出123

toByte():String->Byte


val s = "123"
val b:Byte = s.toByte()
println(b) //输出123

六、其他字符串操作

1. 格式化字符串

使用String.format()函数进行字符串格式化,可以方便地将数字转为字符串并添加逗号、小数点等格式。


val number = 123456789.98765
val formattedString = String.format("%.3f", number)
println(formattedString) //输出123,456,789.988

2. 分割字符串

使用split()函数将一个字符串分割成多个子字符串。下面是一个例子:


val str = "abc,def,ghi"
val parts = str.split(",")
for (part in parts) {
    println(part)
}

3. 大小写转换

可以使用toUpperCase()或toLowerCase()函数将字符串转换为大写或小写。


val str = "Hello Kotlin"
println(str.toUpperCase()) //输出HELLO KOTLIN

七、结语

在Kotlin中,String是一个不可变的类类型和一个基本类型。在本文中,我们从定义、拼接、函数、转义和原始字符串、字符串转换成数字、其他字符串操作等多个方面对Kotlin String进行了详细解析。孰能生巧,大家只有经常处理字符串,才能在实际工作中用好Kotlin String。