个性化阅读
专注于IT技术分析

Kotlin字符串

本文概述

String类表示char类型的数组。字符串是不可变的, 这意味着长度和元素在创建后无法更改。

val ch = charArrayOf('h', 'e', 'l', 'l', 'o')
    val st = String(ch)

与Java不同, Kotlin不需要新的关键字来实例化String类的对象。可以在称为转义字符串的双引号(“”)或称为原始字符串的三重引号(“”“”“”)中简单地声明字符串。

val str1 = "Hello, srcmini"
val str2 = """Welcome To srcmini"""

Kotlin String属性

属性 描述
length: Int 它返回字符串序列的长度。
索引:IntRange 它从当前char序列返回有效字符索引的范围。
lastIndex:整数 它从char序列返回最后一个字符的索引。

字符串功能

功能 描述
compareTo(other:String):整数 它将当前对象与指定对象进行比较。如果电流等于指定的其他对象, 则返回零。
get(index:Int):字符 它从当前字符序列返回给定索引处的字符。
加号(其他:任何?):字符串 它返回连接字符串以及给定其他字符串的字符串表示形式。
subSequence(startIndex:Int, endIndex:Int):CharSequence 它从当前字符序列返回新字符序列, 从startIndex到endIndex开始。
CharSequence.contains(other:CharSequence, ignoreCase:Boolean = false):布尔值 如果字符序列包含其他指定的字符序列, 则返回true。
CharSequence.count():整数 它返回char序列的长度。
String.drop(n:整数):字符串 删除前n个字符后, 它返回一个字符串。
String.dropLast(n:Int):字符串 删除最后一个n个字符后, 它返回一个字符串。
String.dropWhile(谓词:(Char)-> Boolean):字符串 它返回一个字符序列, 其中包含除满足给定谓词的第一个字符外的所有字符。
CharSequence.elementAt(index:Int):字符 它返回给定索引处的字符, 或者如果字符序列中不存在该索引, 则抛出IndexOutOfBoundsException。
CharSequence.indexOf(char:Char, startIndex:Int = 0, ignoreCase:Boolean = false):Int 从给定的索引值开始, 它返回给定字符首次出现的索引。
CharSequence.indexOfFirst(谓词:(Char)-> Boolean):Int 它返回与给定谓词匹配的第一个字符的索引;如果字符序列中不包含任何此类字符, 则返回-1。
CharSequence.indexOfLast(谓词:(Char)-> Boolean):Int 它返回与给定谓词匹配的最后一个字符的索引;如果字符序列中不包含任何此类字符, 则返回-1。
CharSequence.getOrElse(index:Int, defaultValue:(Int)-> Char):字符 它返回指定索引处的字符, 或者如果索引超出当前字符序列的范围, 则返回调用defaultValue函数的结果。
CharSequence.getOrNull(索引:Int):字符? 它在给定的索引处返回一个字符;如果索引超出字符序列的范围, 则返回null。

字符串元素和模板

字符串元素

字符串中存在的字符称为字符串元素。通过索引操作string [index]访问string的元素。字符串的索引值从0开始, 以小于字符串string [string.length-1]的大小结尾。索引0代表第一个元素, 索引1代表第二个元素, 依此类推。

val str ="Hello, srcmini"
println(str[0]) //prints H

访问字符串元素的示例

fun main(args: Array<String>) {

val str = "Hello, srcmini!"
println(str[0])
println(str[1])
println(str[str.length-1])
}

输出:

H
e
!

字符串模板

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

字符串模板作为变量名:

val i =10
print("i = $i") //i=10

fun main(args: Array<String>) {
val i =10
    print("i = $i")//i=10
}

输出:

i=10

字符串模板作为花括号中的任意表达式:

字符串模板还用于花括号中的任意表达式中, 以求值字符串表达式。这是通过使用美元符号$来完成的。

fun main(args: Array<String>) {
val str = "abc"
println("$str is a string which length is ${str.length}")
}
abc is a string which length is 3

原始字符串中的字符串模板:

fun main(args: Array<String>) {
val a = 10
val b = 5

val myString = """value $a
        |is greater than value $b
    """.trimMargin()
println("${myString.trimMargin()}")
}

输出:

value 10
is greater than value 5

Kotlin字符串文字

Kotlin有两种类型的字符串文字:

  • 转义字符串
  • 原始字符串

转义字符串

转义字符串在双引号(“”)中声明, 并且可以包含转义字符, 例如’\ n’, ‘\ t’, ‘\ b’, ‘\ r’, ‘\ $’等。

val text1 ="Hello, srcmini"
//or
val text2 ="Hello, srcmini\n"
//or
val text3 ="Hello, \nsrcmini"

原始字符串

行字符串在三引号(“”“”“”)中声明。它提供了在新行中声明String并包含多行的功能。行字符串不能包含任何转义字符。

val text1 ="""
             Welcome 
                 To
srcmini
    """

在换行中使用原始字符串时, 它会生成一个|。作为保证金前缀。例如:

fun main(args: Array<String>) {

val text = """Kotlin is official language
        |announce by Google for
        |android application development
    """
println(text)
}

输出:

Kotlin is official language
        |announce by Google for
        |android application development

字符串trimMargin()函数

可以使用trimMargin()函数删除前导空格。默认情况下, trimMargin()函数使用|。作为保证金前缀。

fun main(args: Array<String>) {

val text = """Kotlin is official language
        |announce by Google for
        |android application development
    """.trimMargin()

println(text)
}

输出:

Kotlin is official language
announce by Google for
android application development

但是, 可以通过在trimMargin()函数内传递新字符串来更改它。

fun main(args: Array<String>) {

val text = """Kotlin is official language
        #announce by Google for
        #android application development
    """.trimMargin("#")
println(text)
}

输出:

Kotlin is official language
announce by Google for
android application development

Kotlin字符串平等

在Kotlin中, 字符串相等性比较是基于结构相等性(==)和引用相等性(===)进行的。

在结构相等中, 两个对象在内存中具有单独的实例, 但包含相同的值。

引用相等性指定两个不同的引用指向内存中的同一实例。

结构相等(==)

要检查两个包含相同值的对象, 我们使用==运算符或!=运算符进行求反。它等效于Java中的equals()。

fun main(args: Array<String>) {
val str1 = "Hello, World!"
val str2 = "Hello, World!"
println(str1==str2) //true
println(str1!=str2) //false
}

输出:

true
false

参照相等(===)

为了检查两个不同的引用指向同一个实例, 我们使用===运算符。 !==运算符用于求反。当且仅当a和b都指向同一个对象时, a === b才指定true。

让我们看一个引用相等的示例, 以检查不同的引用是否包含相同的实例。为了创建字符串, 我们使用辅助方法buildString而不是引号。

fun main(args: Array<String>) {
val str1 = buildString { "string value" }
val str2 = buildString { "string value" }
println(str1===str2)
println(str1!==str2)
}

输出:

false
true
赞(0)
未经允许不得转载:srcmini » Kotlin字符串

评论 抢沙发

评论前必须登录!