
字符串属性
- length: Int : 它返回字符串序列的长度。
- indices: IntRange : 它返回当前char序列中有效字符索引的范围
- lastIndex: Int :它返回char序列中最后一个字符的索引
字符串函数
查找
获取第一个元素
主要包含first() | firstOrNull()和first{} | firstOrNull{}四个函数
-
first() | firstOrNull()
作用 :查找字符串的第一个元素
区别 :若字符串为空串时,前者会抛出 NoSuchElementException异常 ,后者会返回null -
first{} | firstOrNull{}
作用 :查找等于某一个字符的第一个元素
区别 :未查找到满足条件的元素,前者会抛出NoSuchElementException异常 ,后者会返回null
获取最后一给元素
主要包含last()、lastOrNull()和last{}和lastOrNull{}四个函数
- last()、lastOrNull()
作用 :查找字符串的最后一个元素
区别 :若字符串为空串时,前者会抛出NoSuchElementException异常 ,后者会返回null - last{}、lastOrNull{}
作用 :查找等于某一个字符的最后一个元素
区别 :未查找到满足条件的元素,前者会抛出NoSuchElementException异常 ,后者会返回null
查找对应元素下标
- indexOf() : 查找某一个元素或字符串在原字符串中第一次出现的下标。
- indexLastOf() : 查找某一个元素或字符串在原字符串中最后一次出现的下标。
- indexOfFirst{} : 同indexOf()
- indexOfLast{} : 同indexLastOf()
示例:
val str = "kotlin very good"
println(str.indexOfFirst { it == 'o' })
println(str.indexOfLast { it == 'o' })
println(str.indexOf('o',0))
println(str.indexOf("very",0))
println(str.lastIndexOf('o'))
println(str.lastIndexOf("good"))
输出:
1
14
1
7
14
12
截取
Kotlin中是使用了Java中的subString()函数
@kotlin.internal.InlineOnly
public inline fun String.substring(startIndex: Int): String = (this as java.lang.String).substring(startIndex)
@kotlin.internal.InlineOnly
public inline fun String.substring(startIndex: Int, endIndex: Int): String = (this as java.lang.String).substring(startIndex, endIndex)
public fun String.substring(range: IntRange): String = substring(range.start, range.endInclusive + 1)
- startIndex参数:截取字符串的开始下标
- endIndex参数:截取字符串的结束下标
- rang参数,是指一个IntRang类型,表示一个范围
示例:
val str = "Kotlin is a very good programming language"
println("s = ${str.substring(10)}") // 当只有开始下标时,结束下标为length - 1
println(str.substring(0,15))
println(str.substring(IntRange(0,15)))
输出:
a very good programming language
Kotlin is a ver
Kotlin is a very
可以看出使用subString(startIndex,endIndex)和subString(rang)时的区别:
- subString(startIndex,endIndex) : 半闭区间,包前不包后
- subString(IntRange(startIndex,endIndex)) :全闭区间,前后都包括
用subSequence()函数截取
和subString()函数一样,但是其不提供只传递startIndex的情况
替换
函数:
1,replace(oldChar,newChar,ignoreCase = false)
作用 : 把原字符串中的某一个字符全部替换成新的字符。然后返回新的字符串
- oldChar: 需要替换的字符
- newChar: 新的字符
- ignoreCase : 是否引用Java中的replace()函数。默认值为false,即用Java的replace()函数
2,replace(oldValue,newValue,ignoreCase = false)
作用 : 把原字符串中的某一个字符全部替换成新的字符。然后返回新的字符串
- oldValue: 需要替换的字符串
- newValue: 新的字符串
- ignoreCase : 是否引用Java中的replace()函数。默认值为false,即用Java的replace()函数
3,replace(regex,replacement)
作用 : 根据定义的正则规则去匹配源字符串,把满足规则的字符串替换成新的字符串。
- regex: 正则表达式
- replacement: 新的字符串
4,replaceFirst()
作用:把满足条件的第一个字符或字符串替换成新的字符或字符串
示例:
val str = "Kotlin is a very good programming language"
println(str.replaceFirst('a','A'))
//输出:Kotlin is A very good programming language
println(str.replaceFirst( "Kotlin","Java"))
//输出:Java is a very good programming language
5,replaceBefore()
作用:截取满足条件的第一个字符或字符串后面的字符串,包含满足条件字符或字符串自身,并在其前面加上新的字符串
示例:
val str = "Kotlin is a very good programming language"
println(str.replaceBefore('a',"AA"))
//输出:AAa very good programming language
println(str.replaceBefore("Kotlin","Java"))
//输出:JavaKotlin is a very good programming language
6,replaceBeforeLast()
作用:截取满足条件的最后一个字符或字符串后面的字符串,包含满足条件字符或字符串自身,并在其前面加上新的字符串。
示例:
理解:从字符串后面数,符合条件的字符或字符串左边的都被替换成需要替换的字符或字符串。
val str = "Kotlin is a very good programming language"
println(str.replaceBeforeLast('a',"AA"))
//输出:AAage
println(str.replaceBeforeLast("Kotlin","Java"))
//输出:JavaKotlin is a very good programming language
7,replaceAfter()
作用:截取满足条件的第一个字符或字符串前面的字符串,包含满足条件字符或字符串自身,并在其后面加上新的字符串。
示例:
val str = "Kotlin is a very good programming language"
println(str.replaceAfter('a',"AA"))
//输出:Kotlin is aAA
println(str.replaceAfter("Kotlin","Java"))
//输出:KotlinJava
8,replaceAfterLast()
作用:截取满足条件的最后一个字符或字符串前面的字符串,包含满足条件字符或字符串自身,并在其后面加上新的字符串。
示例:
val str = "Kotlin is a very good programming language"
println(str.replaceAfterLast('a',"AA"))
//输出:Kotlin is a very good programming languaAA
println(str.replaceAfterLast("Kotlin","Java"))
//输出:KotlinJava
分割
函数:split() —>返回是一个集合
- 使用正则表达式分割
示例:
var str2 = "1 kotlin 2 java 3 Lua 4 JavaScript"
val list3 = str2.split(Regex("[0-9]+"))
for (str in list3){
print("$str \t")
}
println()
val list4 = str2.split(Pattern.compile("[0-9]+"))
for (str in list4){
print("$str \t")
}
输出:
kotlin java Lua JavaScript
kotlin java Lua JavaScript
- 使用字符或字符串分割
示例:
val str1 = "Kotlin is a very good programming language"
val list1 = str1.split(' ')
for (str in list1){
print("$str \t")
}
println()
val list2 = str1.split(" ")
for (str in list2){
print("$str \t")
}
输出:
Kotlin is a very good programming language
Kotlin is a very good programming language
- splitToSequence() 与上述函数效果相同