美文网首页
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