本文概述
- Kotlin String属性
- 字符串功能
- 字符串元素和模板
- Kotlin字符串文字
- 字符串trimMargin()函数
- Kotlin字符串平等
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])}
输出:
He!
字符串模板
字符串模板表达式是一段代码, 将对其求值并将其结果返回到字符串中。两种字符串类型(转义字符串和原始字符串)都包含模板表达式。字符串模板以美元符号$开头, 美元符号由变量名或大括号中的任意表达式组成。
字符串模板作为变量名:
val i =10print("i = $i") //i=10fun main(args: Array<
String>
) {val i =10print("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 = 10val b = 5val myString = """value $a|is greater than value $b""".trimMargin()println("${myString.trimMargin()}")}
【Kotlin字符串】输出:
value 10is greater than value 5
Kotlin字符串文字Kotlin有两种类型的字符串文字:
- 转义字符串
- 原始字符串
转义字符串在双引号(“”)中声明, 并且可以包含转义字符, 例如’ \ n’ , ‘ \ t’ , ‘ \ b’ , ‘ \ r’ , ‘ \ $’ 等。
val text1 ="Hello, srcmini"//orval text2 ="Hello, srcmini\n"//orval text3 ="Hello, \nsrcmini"
原始字符串
行字符串在三引号(“”“”“”)中声明。它提供了在新行中声明String并包含多行的功能。行字符串不能包含任何转义字符。
val text1 ="""Welcome Tosrcmini"""
在换行中使用原始字符串时, 它会生成一个|。作为保证金前缀。例如:
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 languageannounce by Google forandroid 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 languageannounce by Google forandroid application development
Kotlin字符串平等在Kotlin中, 字符串相等性比较是基于结构相等性(==)和引用相等性(===)进行的。
在结构相等中, 两个对象在内存中具有单独的实例, 但包含相同的值。
引用相等性指定两个不同的引用指向内存中的同一实例。
结构相等(==)
要检查两个包含相同值的对象, 我们使用==运算符或!=运算符进行求反。它等效于Java中的equals()。
fun main(args: Array<
String>
) {val str1 = "Hello, World!"val str2 = "Hello, World!"println(str1==str2) //trueprintln(str1!=str2) //false}
输出:
truefalse
参照相等(===)
为了检查两个不同的引用指向同一个实例, 我们使用===运算符。 !==运算符用于求反。当且仅当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)}
输出:
falsetrue
推荐阅读
- Kotlin抛出关键字throw
- Kotlin智能投射
- Kotlin set接口
- Kotlin密封类
- Kotlin return跳转表达式
- Kotlin正则表达式
- Kotlin正则表达式模式
- Kotlin反射
- Kotlin递归函数