1、字符串定义
fun main() {
println("--------------- 1、普通字符串 ---------------")
val place = "四川省成都市高新区"
val place2 = String(charArrayOf('a', 'b', 'c'))
println(place)
println(place2)
println("--------------- 2、原始字符串 ---------------")
val address = """
四川省
成都市
高新区
"""
println(address)
}
2、字符串删除空格
fun main() {
println("--------------- 普通字符串删除空格 ---------------")
val place = " 四川省 成都市 高新区 "
println("length:${place.length} str1:->${place}<-")
val str1 = place.trim()
println("length:${str1.length} str1:->${str1}<-")
//length:11 str1:->四川省 成都市 高新区<-
val str2 = place.trimStart()
println("length:${str2.length} str2:->${str2}<-")
//length:12 str2:->四川省 成都市 高新区 <-
val str3 = place.trimEnd()
println("length:${str3.length} str3:->${str3}<-")
//length:12 str3:-> 四川省 成都市 高新区<-
println("--------------- 原样字符串删除空格 ---------------")
val address = """
四川省
成都市
高新区
"""
println("length:${address.length} str4:->${address}<-")
//length:41 str4:->
// 四川省
// 成都市
// 高新区
// <-
//trim()、trimStart()、trimEnd()同上
//删除前、后、中间空格
val str4 = address.trimIndent()
println("length:${str4.length} str4:->${str4}<-")
//length:11 str4:->四川省
//成都市
//高新区<-
val loaction = """
/四川省
/成都市
/高新区
"""
val str5 = loaction.trimMargin("/")
println("length:${str5.length} str4:->${str5}<-")
//length:11 str4:->四川省
//成都市
//高新区<-
}
3、字符串比较
fun main() {
val str1 = "abc"
val str2 = String(charArrayOf('a', 'b', 'c'))
println(str1.equals(str2)) //true:equals比较的是值
println(str1 == str2) //true:==比较的是值
println(str1 === str2) //false:===比较的是地址
}
4、字符串切割
fun main() {
val str = "张三.李四.王五"
val result: List<String> = str.split(".")
println(result)
//返回的是一个List:[张三, 李四, 王五]
val str2 = "张三.李四-王五"
val result2: List<String> = str2.split(".", "-")
println(result2)
//返回的是一个List:[张三, 李四, 王五]
}
5、字符串截取
fun main() {
val path = "C:User/yole/kotlin-book/chapter.doc"
//截取第5个字符之后的字符
println(path.substring(5))//r/yole/kotlin-book/chapter.doc
//截取前6个字符
println(path.substring(0, 6)) //C:User
println(path.substring(0..5)) //C:User
//截取第一个r之前的字符
println(path.substringBefore("r")) //C:Use
//截取最后一个r之前的字符
println(path.substringBeforeLast("r")) //C:User/yole/kotlin-book/chapte
//截取第一个r之后的字符
println(path.substringAfter("r")) ///yole/kotlin-book/chapter.doc
//截取最后一个r之后的字符
println(path.substringAfterLast("r")) //.doc
}
6、字符串替换
fun main() {
val str1 = "abacABAC"
//替换全部,区分大小写。结果:result11=#b#cABAC result12=##acABAC
val result11 = str1.replace('a', '#')
val result12 = str1.replace("ab", "##")
println("result11=$result11 result12=$result12")
//替换全部,忽略大小写。结果:result13=@b@c@B@C result14=@@ac@@AC
val result13 = str1.replace('a', '@', true)
val result14 = str1.replace("ab", "@@", true)
println("result13=$result13 result14=$result14")
//替换第一个,区分大小写。结果:result15=aBacABAC result16=ABacABAC
val result15 = str1.replaceFirst('b', 'B')
val result16 = str1.replaceFirst("ab", "AB")
println("result15=$result15 result16=$result16")
val str2 = "abcdabcd"
//把第一个c之前的字符串替换成%,如果未找到c则返回this。结果:%cdabcd
val result21 = str2.replaceBefore('c', "%")
val result22 = str2.replaceBefore("c", "%")
println("result21=$result21 result22=$result22")
//把第一个f之前的字符串替换成%,如果未找到f则返回NO。结果:NO
val result23 = str2.replaceBefore('f', "%", "NO")
val result24 = str2.replaceBefore("f", "%", "NO")
println("result23=$result23 result24=$result24")
//把最后一个c之前的字符串替换成%,如果未找到c则返回this。结果:%cd
val result25 = str2.replaceBeforeLast('c', "%")
val result26 = str2.replaceBeforeLast("c", "%")
println("result25=$result25 result26=$result26")
//把最后一个f之前的字符串替换成%,如果未找到f则返回NO。结果:NO
val result27 = str2.replaceBeforeLast('f', "%", "NO")
val result28 = str2.replaceBeforeLast("f", "%", "NO")
println("result27=$result27 result26=$result28")
val str3 = "GHIJGHIJ"
//把第一个H之后的字符串替换成$,如果未找到则返回this。结果:GH$
val result31 = str3.replaceAfter('H', "$")
val result32 = str3.replaceAfter("H", "$")
println("result31=$result31 result32=$result32")
//把第一个K之后的字符串替换成$,如果未找到则返回NO。结果:NO
val result33 = str3.replaceAfter('K', "$", "NO")
val result34 = str3.replaceAfter("K", "$", "NO")
println("result33=$result33 result34=$result34")
//把最后一个H之后的字符串替换成$,如果未找到H则返回this。结果:GHIJGH$
val result35 = str3.replaceAfterLast('H', "$")
val result36 = str3.replaceAfterLast("H", "$")
println("result35=$result35 result36=$result36")
//把最后一个K之后的字符串替换成$,如果未找到K则返回NO。结果:NO
val result37 = str3.replaceAfterLast('K', "$", "NO")
val result38 = str3.replaceAfterLast("K", "$", "NO")
println("result37=$result37 result38=$result38")
val str4 = "0123456789"
//替换区间。结果:result41=01---6789 result42=---3456789
val result41 = str4.replaceRange(2..5, "---")
val result42 = str4.replaceRange(0, 3, "---")
println("result41=$result41 result42=$result42")
val str5 = """
0:1
|2
:3:4:
"""
//删除前面的空格
val result51 = str5.replaceIndent()
//|前面的空格删除,并用""替换|;margin和替换值均可自行设置
val result52 = str5.replaceIndentByMargin()
println("->$result51<-")
//->0:1
//|2
//:3:4: <-
println("->$result52<-")
//-> 0:1
//2
// :3:4: <-
}
7、字符串模板
fun main() {
//字符串模板:$xxx或者${xxx}
val palce = "天安门"
val diary = "今天天气晴朗,万里无云,我们去$palce 游玩,映入眼帘的是$palce${palce.length}个大字!"
println(diary)
}
网友评论