Kotlin_String/ Array笔记

Kotlin  String 可以使用正则表达式过滤内容(split), 并且转成Array (toTypedArray), 如下:

val arrays = stringList.split(";".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()

由Array 可以完成查找功能(Arrays.stream(XX).anyMatch),

val found = Arrays.stream(arrays).anyMatch { t -> t == newValue }

例如可以实现从以分号(l;) 区分的一串字符中, 查找有没特定的字符串,如果没有,则把当前查找的字符串添加进去,

测试代码如下:

class ArrayTest {
    companion object{
        @JvmStatic
        fun main(args: Array<String>) {
            val stringList = "2313;133434;1232321;1232312;1232312;43432432;342342;2343123;2343241;64564"


            println("stringList = $stringList")
            // 以; 过滤并转成Array
            val arrays = stringList.split(";".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()


            println("arrays println ======================start ================")
            arrays.forEach { print("$it ") }
            println()
            println("arrays println ======================end ================")

           addNewString(arrays, stringList)
            //removeString(arrays, stringList)
        }
        
        @JvmStatic
        private fun addNewString(arrays: Array<String>, stringList: String) {
            var newValue = "88888"
            println("newValue = $newValue")
            // 从Array 中确认有没需要查找的子串
            val found = Arrays.stream(arrays).anyMatch { t -> t == newValue }
            var newList = StringBuilder()
            // 没有找到则添加进去
            if (!found) {
                newList = StringBuilder(stringList).append(';').append(newValue)
            }
            println("newList = $newList")
        }
}

输出:

stringList = 2313;133434;1232321;1232312;1232312;43432432;342342;2343123;2343241;64564
arrays println ======================start ================
2313 133434 1232321 1232312 1232312 43432432 342342 2343123 2343241 64564 
arrays println ======================end ================
newValue = 88888
newList = 2313;133434;1232321;1232312;1232312;43432432;342342;2343123;2343241;64564;88888

 

同样,也可以实现查找后删除,如

        @JvmStatic
        private fun removeString(arrays: Array<String>, stringList: String) {
            var removeString = "2313"
            println("removeValue = $removeString")
            // 从Array 中确认有没需要查找的子串

            var newList = StringBuilder()
            // 没有找到则添加进去
            for (checkSubString in arrays) {
                if (removeString != checkSubString) {
                    if (newList.isEmpty()) {
                        newList.append(checkSubString)
                    } else {
                        newList.append(';').append(checkSubString)
                    }
                }
            }
            println("newList = $newList")

        }

输出为(删除第一个):

stringList = 2313;133434;1232321;1232312;1232312;43432432;342342;2343123;2343241;64564
arrays println ======================start ================
2313 133434 1232321 1232312 1232312 43432432 342342 2343123 2343241 64564 
arrays println ======================end ================
removeValue = 2313
newList = 133434;1232321;1232312;1232312;43432432;342342;2343123;2343241;64564

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值