String类表示char类型的数组。字符串是不可变的,这意味着长度和元素在创建后无法更改。
val ch = charArrayOf('h', 'e', 'l', 'l', 'o') val st = String(ch)
与Java不同,Kotlin不需要new的关键字来实例化String类的对象。可以在称为转义字符串的双引号(“”)或称为原始字符串的三引号(“”“ ”“”“)中简单地声明字符串。
val str1 = "Hello, learnfk" val str2 = """Welcome To Learnfk"""
属性 | 描述 |
---|---|
length:Int | 返回字符串长度。 |
indices:IntRange | 从当前序列返回有效索引范围。 |
lastIndex:Int | 返回最后一个字符的索引。 |
Functions | Description |
---|---|
compareTo(other: String): Int | 将当前对象与指定对象进行比较。如果相等,则返回零。 |
get(index: Int): Char | 从当前字符序列返回给定索引处的字符。 |
plus(other: Any?): String | 字符串拼接 |
subSequence(startIndex: Int,endIndex: Int): CharSequence | 字符串截取,从startIndex到endIndex开始。 |
CharSequence.contains(other: CharSequence, ignoreCase: Boolean = false):Boolean | 如果字符包含其他指定的字符,则返回true。 |
CharSequence.count(): Int | 返回char长度。 |
String.drop(n: Int): String | 删除前n个字符后,它返回一个字符串。 |
String.dropLast(n: Int): String | 删除后n个字符后,它返回一个字符串。 |
String.dropWhile(predicate: (Char) -> Boolean): String | 它返回一个字符序列,其中包含除满足给定条件的字符外的所有字符。 |
CharSequence.elementAt(index: Int): Char | 如果在字符中不存在,则引发IndexOutOfBoundsException异常。 |
CharSequence.indexOf(char: Char, startIndex: Int = 0,ignoreCase: Boolean = false): Int | 从给定的索引值开始,它返回给定字符首次出现的索引。 |
CharSequence.indexOfFirst(predicate: (Char) -> Boolean): Int | 它返回与给定匹配的第一个字符的索引;如果字符序列中不包含任何这样的字符,则返回-1。 |
CharSequence.indexOfLast(predicate: (Char) -> Boolean): Int | 它返回与给定匹配的最后一个字符的索引;如果字符序列中不包含任何此类字符,则返回-1。 |
CharSequence.getOrElse(index: Int, defaultValue: (Int) ->Char): Char | 它返回指定索引处的字符,或者如果索引超出当前字符序列的范围,则返回调用defaultValue函数的结果。 |
CharSequence.getOrNull(index: Int): Char? | 它返回给定索引处的字符,如果索引超出字符序列的范围,则返回null。 |
字符串中存在的字符称为字符串元素。通过索引操作string [index]访问string的元素。字符串的索引值从0开始,以小于字符串string [string.length-1]的大小结尾。索引0代表第一个元素,索引1代表第二个元素,依此类推。
val str ="Hello, learnfk" println(str[0]) //prints H
访问字符串元素的示例
fun main(args: Array<String>) { val str = "Hello, learnfk!" println(str[0]) println(str[1]) println(str[str.length-1]) }
输出:
H e !
字符串中存在的字符称为字符串元素。通过索引操作string [index]访问string的元素。字符串的索引值从0开始,以小于字符串string [string.length-1]的大小结尾。索引0代表第一个元素,索引1代表第二个元素,依此类推。
字符串模板作为变量名:
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有两种类型的字符串文字:
转义字符串在双引号(“”)中声明,并且可以包含转义字符,例如'\n','\t','\b','\r','\$'等。
val text1 ="Hello, Learnfk" //or val text2 ="Hello, Learnfk\n" //or val text3 ="Hello, \nLearnfk"
行字符串在三重报价中声明("""")。它提供了在新行中声明字符串并包含多行的工具。行字符串不能包含任何转义字符。
val text1 =""" Welcome To Learnfk """
在新行中使用原始字符串时,它会生成|作为前缀。例如:
链接:https://www.learnfk.comhttps://www.learnfk.com/kotlin/kotlin-string.html
来源:LearnFk无涯教程网
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()函数使用|作为前缀。
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中,字符串相等性比较是基于结构相等性(==)和引用相等性(===)进行的。
结构相等性(==) - 两个对象在内存中具有单独的实例,但包含相同的值。
引用相等性(===) - 指定两个不同的引用指向内存中的同一实例。
要检查包含相同值的两个对象,无涯教程使用==运算符或!=运算符否定。它相当于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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)