Kotlin中的substring操作
-
概述:大体与 Java相同,但KT中倾向于将逗号换成until
-
代码
const val INFO = "abcdefg" fun main(){ var index = INFO.indexOf('d') println(INFO.substring(0 , index)) println(INFO.substring(0 until index)) } -
运行截图:
Kotlin 中的split操作
-
概述:
- 根据指定字符串对原有字符串进行分割
- 综合C++ 中的解构操作
-
代码:
fun main(){ var string = "value1,value2,value3,value4" var list = string.split(",") println("直接输出list $list") var (v1,v2,v3,v4) = list println("综合C++解构操作,v1:$v1,v2:$v2,v3:$v3,v4:$v4") } -
运行截图:
Kotlin 中的replace操作
-
概述:对原始字符串进行混淆
- 根据正则表达式+when进行混淆
-
代码:
fun main(){ var pwd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" println("原始密码为 $pwd") var pwdNew = pwd.replace(Regex("[AKMNQ]")){ when (it.value){ "A" -> "1" "K" -> "2" "M" -> "3" "N" -> "4" "Q" -> "5" else -> it.value } } println("混淆后的密码为 $pwdNew") var pwdSource = pwdNew.replace(Regex("[12345]")){ when (it.value){ "1" -> "A" "2" -> "K" "3" -> "M" "4" -> "N" "5" -> "Q" else -> it.value } } println("逆混淆后的密码为 $pwdSource") } -
运行截图:
Kotlin中的 == 与 ===
-
概述:
- ==:相当于Java中的equals,比较的是字面量
- ===:相当于Java中的hashCode,比较的是引用
- 同时需要注意,在Kotlin中同样存在字符串常量池
-
代码:
fun main(){ val name1 = "Wasbry" val name2 = "Wasbry" val name3 = "wa" println("测试 == ,相当于Java中的equals,比较的是字面量") println(name1 == name2) println(name1.equals(name2)) println("测试 ===,相当于Java中的hashCode,比较的是引用") //再次比较 val name4 = "wasbry".capitalize() println(name1 === name4) } -
运行截图:
Kotlin中字符串的遍历
-
概述:采用forEach
- 内部持有调用者的引用,it
- 这个是可以进行覆盖的
-
代码:
package step3 fun main(){ val str = "ABCDE" val str1 = "ABCDE" str.forEach { print("取出单个字符:$it") } println() str1.forEach {C-> print("取出单个字符:$C") } } -
运行截图: