= (this as java.lang.String).substring(startIndex, endIndex)
public fun String.substring(range: IntRange): String = substring(range.start, range.endInclusive + 1)
从以上的源码中我们可以看出,Kotlin
中是使用了Java
中的subString()
函数
其中:
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)
时的区别。可以从上边的结果结合源码可以看出来。 - 切记下标越界的情况。即
StringIndexOutOfBoundsException
异常
2.2、用subSequence()
函数截取
在Kotlin
中除了使用上面讲解到的使用subString()
截取字符串外,还可以使用subSequence()
函数截取。
我们看一看其源码实现:
public fun subSequence(startIndex: Int, endIndex: Int): CharSequence
public fun CharSequence.subSequence(range: IntRange): CharSequence = subSequence(range.start, range.endInclusive + 1)
从源码中我们可以看出,其大致和subString()
函数一样,但是其不提供只传递startIndex
的情况
实例:
val str = “Kotlin is a very good programming language”
println(str.subSequence(0,15))
println(str.subSequence(IntRange(0,15)))
输出结果为:
Kotlin is a ver
Kotlin is a very
三、字符串替换
同上述字符串截取一样,如果您有编程经验,可跳过此节。不过对于字符串替换功能,Kotlin
除了实现Java
中的replace()
ha函数外,还提供了另外的replaceFirst()
、replaceAfter()
、replaceBefore()
、replaceIndent()
、等函数。下面会对这些函数意义进行实例讲解。