• Kotlin 开发Android app(三):Kotlin 的字符串indexOf,substring,replace,split


    每一种语言中,最重要的类型应该就是String了,为什么字符串用的这么多了,计算机一开始设计出来是为了计算用的,像整型或者浮点数那是最经常用到的,但是后面随着互联网的发展,字符串是最容易传播信息和观念的,可以说这个信心互联网是由一个一个字符组成的。

    在这里插入图片描述

    字符串查找

    对于变量来说,在Kotlin 中,我们是可以不需要自定数据类型的,通常我们声明一个变量,并把它数值以后,Kotlin会自动的识别这个变量的类型,但是如果你不习惯的话,还是把变量类型写上。

    val str = " Hello Kotlin"
    
    • 1

    str 就被自动的识别为String 类型。

    我们在查找一个字符串,可以使用 indexOf ,如果找到,返回字符的位置,如果没有找到返回-1

    val str:String = "Hello Kotlin"
    
    var index = str.indexOf("kotlin",0,true)
    
    • 1
    • 2
    • 3

    indexOf 来说是从头部开始查找,还有lastIndexOf是从尾部开始查找。具体的用法就相同了。

    字符串截取

    字符串截取的截取和java的没有什么样的区别,也可以说基本上是通用的,在kotlin中使用的是 subString截取字符串

    参数如下:

    • startIndex参数:截取字符串的开始下标
    • endIndex参数:截取字符串的结束下标
    • rang参数,是指一个IntRang类型
    var substr = str.substring(0,10)
    
    • 1

    同样的 subSequence(),也可以实现同样的功能。

    字符串替换

    那就是replace() 函数了:

    var newstr = str.replace("Kotlin","World")
    
    • 1

    如果会使用正则表达式的,还可以这么来使用:

     val str1:String = "Hello kotlin 1234"
            val newStr = str1.replace(Regex("[0-9]+"),{
                "abcd"
            })
    
    • 1
    • 2
    • 3
    • 4

    关于替换的函数还有一下几个:replaceFirst,replaceBefore,replaceBeforeLast,replaceAfter,replaceAfterLast

    字符串分割

    分割字符串也是同样的,使用的是split() 函数。

    str.split(" ")
    
    • 1

    正则表达式可以这样写:

            val str_sp = str1.split(Regex("[0-9]+"))
            for (str in str_sp){
                println("$str")
            }
    
    • 1
    • 2
    • 3
    • 4
    字符串连接

    字符串连接我们可以使用 + ,也可以使用 plus() ,其实 + 最好用。各个语言都支持这种写法。

    
            var str2 = str1 + str
            println(str2)
    
    • 1
    • 2
    • 3
    字符串反转

    reversed() 翻转整个字符串。

    str2.reversed()
    
    • 1
    字符串的起始与结尾

    startsWithendsWith 函数,能够判断字符串的开头和结尾,这个也非常有用,我们有的时候在做协议的时候,经常用这个来判断。

    str2.startsWith("Kotlin")
    
    • 1
    小结

    我们单独的一节来介绍字符串,字符串的处理在编程中是经常碰到的,而且占得比较比较大,再多的介绍字符串我觉得都不为过,上面的总结只是对字符串的重点功能的介绍,还有很多关于字符串的小功能,如果用到的话,可以在文档中进行查找 ,这里如同抛砖引玉。

  • 相关阅读:
    c++ 小案例:判断质数&&猜数字&&用符号填补心形图案
    IntelliJ IDEA + spring-boot+mysql简单实现获取数据库数据接口例子
    OpenGL 阴影
    【ARM linux mqtt协议连接服务器】
    【C++】C++基础知识(六)---函数
    机器人控制——PID参数整定
    CN_组帧@帧定界
    java-net-php-python-ssmA公司运维管理系统计算机毕业设计程序
    【毕业设计】基于 STM32 的自动泊车系统 -智能小车 - 物联网单片机
    Linux学习-24-Linux用户和用户组管理介绍
  • 原文地址:https://blog.csdn.net/weixin_40425640/article/details/127787160