美文网首页
Kotlin语言(二):字符串类型

Kotlin语言(二):字符串类型

作者: SupKing_a520 | 来源:发表于2022-01-12 18:09 被阅读0次

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)
}

相关文章

网友评论

      本文标题:Kotlin语言(二):字符串类型

      本文链接:https://www.haomeiwen.com/subject/zlowcrtx.html