- Kotlin环境设置(命令行)
- Kotlin Hello World程序(命令行)
- Kotlin程序概念解释
- Kotlin开发环境设置(IDE)
- Kotlin第一个程序(IDE)
- Kotlin变量
- Kotlin数据类型
- Kotlin类型转换
- Kotlin运算符
- Kotlin表达式、语句和块
- Kotlin标准输入/输出
- Kotlin注释
- 控制流程
- 函数
- 数组
- 字符串
- 异常处理
- 空安全
- 集合
- 注解
- 反射
- Kotlin OOP
- 范围
- Java互操作性
- 正则表达式
Kotlin字符串
String
类表示char
类型的数组。 字符串是不可变的,这意味着长度和元素在创建后不能更改。
val ch = charArrayOf('h', 'e', 'l', 'l', 'o') val st = String(ch)
与Java不同,Kotlin不需要使用new
关键字来实例化String
类的对象。 String
可以简单地在双引号(""
)中声明,称为转义字符串或三引号(""" """
),称为原始字符串。
val str1 = "Hello, zyiz" val str2 = """Welcome To zyiz"""
字符串属性
属性 | 描述 |
---|---|
length: Int |
它返回字符串序列的长度。 |
indices: IntRange |
它返回当前char 序列中有效字符索引的范围。 |
lastIndex: Int |
它返回char 序列中最后一个字符的索引。 |
字符串函数
函数 | 描述 |
---|---|
compareTo(other: String): Int |
它将当前对象与指定对象进行比较以获得顺序。 如果current 等于指定的其他对象,则返回0 。 |
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 。 |
字符串元素和模板
1. 字符串元素
字符串中存在的字符称为字符串元素。 通过索引操作string[index]
访问字符串的元素。 String的索引值从0
开始,以字符串string [string.length-1]
结束。 索引0
表示第一个元素,索引1
表示第二个元素,依此类推。
val str ="Hello, zyiz" println(str[0]) //prints H
访问字符串元素的示例
fun main(args: Array<String>) { val str = "Hello, zyiz!" println(str[0]) println(str[1]) println(str[str.length-1]) }
执行上面示例代码,得到以结果 -
H e !
2. 字符串模板
字符串模板表达式是一段代码,它计算并将结果返回到字符串中。 两种字符串类型(转义和原始字符串)都包含模板表达式。 字符串模板以美元符号$
开头,其中包含变量名称或花括号中的任意表达式。
字符串模板作为变量名称:
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 = "abcd" println("$str 是一个字符串,它的长度是:${str.length}") }
执行上面示例代码,得到以下结果 -
abcd 是一个字符串,它的长度是:4
原始字符串中的字符串模板
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有两种类型的字符串文字:
- 转义字符串
- 原始字符串
1. 转义字符串
转义字符串在双引号(""
)内声明,并且可能包含转义字符,如\n
,\t
,\b
,\r
,\'
等。
val text1 ="Hello, zyiz" // 或者 val text2 ="Hello, zyiz\n" // 或者 val text3 ="Hello, \nzyiz"
2. 原始字符串
行字符串在三引号(""""""
)内声明。它提供了在新行中声明字符串并包含多行的工具。 行字符串不能包含任何转义字符。
val text1 =""" Welcome To zyiz zyiz """
使用带有新行的原始字符串时,它会生成一个|
作为保证前缀。 例如:
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
上一篇:Kotlin数组
下一篇:Kotlin异常处理
扫描二维码
程序员编程王