Kotlin字符串

本文最后更新于:2022年12月18日 中午

字符串

[TOC]

字符串截取

substring

substring函数支持IntRange类型(表示一个整数范围的类型)的参数,until创建的范围不包括上限值。

const val NAME = "Jerry Smith"
fun main() {
    val index = NAME.indexOf(" ")
    // Java方式
    var str = NAME.substring(0, index)
    println(str)
    // Kotlin方式
    str = NAME.substring(0 until index)
    println(str)
}
// 输出
// Jerry
// Jerry

split

split函数返回的是List集合数据,List集合又支持解构语法特性,它允许你在一个表达式里给多个变量赋值,解构常用来简化变量的赋值。

const val NAMES = "Jerry,Morty,Yorick"
fun main() {
    val data = NAMES.split(",")
    // data[0]

    // 结构语法
    val (origin, dest, proxy) = NAMES.split(",")
    println("$origin $dest $proxy")
}
// 输出
// Jerry Morty Yorick

字符串操作

replace 字符串替换

fun main() {
    val str = "The People's Republic of China"
    val reStr = str.replace(Regex("[anxious]")) {
        when (it.value) {
            "a" -> "6"
            "n" -> "3"
            "x" -> "2"
            "i" -> "5"
            "o" -> "4"
            "u" -> "0"
            "s" -> "7"
            else -> it.value
        }
    }
    println(str)
    println(reStr)
}
// 输出
// The People's Republic of China
// The Pe4ple'7 Rep0bl5c 4f Ch536

字符串比较

在Kotlin中,用==检查两个字符串中的字符是否匹配,用===检查两个变量是否指向内存堆上同一对象。而在Java中==做引用比较(是否为同一对象),做内容比较时用equals方法。

fun main() {
    val str1 = "Yorick"
    val str2 = "Yorick"
    println(str1==str2)
    println(str1===str2)
}
// 输出
// true
// true
fun main() {
    val str1 = "Yorick"
    val str2 = "yorick".capitalize()
    println(str1 == str2)
    println(str1 === str2)
}

Unicode

遍历字符

forEach

fun main() {
    val str1 = "Yorick"
    val str2 = "yorick".capitalize()
    println(str1 == str2)
    println(str1 === str2)
    str1.forEach {
        print("$it * ")
    }
}
// 输出
// Y * o * r * i * c * k * 

格式化字符串

在 Kotlin 中格式化字符串 | D栈 - Delft Stack


Kotlin字符串
https://yorick-ryu.github.io/Kotlin/Kotlin字符串/
作者
Yorick
发布于
2022年9月7日
许可协议