按固定数量的字符拆分字符串

时间:2017-11-06 11:29:14

标签: string split kotlin

有没有一种快速方法可以在Kotlin中按固定数量的字符分割字符串?

我需要将此544A1609B62E拆分为小写,在需要的地方添加:并实现此目的:54:4a:16:09:b6:2e

这样做的惯用方法是什么?

2 个答案:

答案 0 :(得分:7)

在Kotlin 1.2中你可以这样做:

"544A1609B62E".toLowerCase().chunked(2).joinToString(":")

chunked功能是Kotlin 1.2中的新功能。它将一个集合拆分为给定大小的块。

在Kotlin 1.1或更低版本中执行此操作会有点麻烦。您可以在这里查看@NSimon发布的问题中的答案:Java: How to split a string by a number of characters?

答案 1 :(得分:1)

Kotlin的另一次尝试,

val sampleString = "544A1609B62E"
        var i = 0
        var sampleBuffer = "";
        while(i < sampleString.length - 2) {
            sampleBuffer = sampleBuffer.plus(sampleString.toLowerCase ().substring(i, i + 2)).plus(":")
            i += 2
        }

        sampleBuffer = sampleBuffer.plus(sampleString.toLowerCase().substring(i))
        Log.e(TAG, sampleBuffer)