这可能已经被问过几次了.. 我想做的是在字符串(8888319024981442)的每四个字符之间添加空格,我的字符串长度恰好为16。使用 String.format
并不有帮助。
避免使用split或创建多个字符串占用内存。
是否有任何可以快速使用的kotlin函数/String.format呢?
这可能已经被问过几次了.. 我想做的是在字符串(8888319024981442)的每四个字符之间添加空格,我的字符串长度恰好为16。使用 String.format
并不有帮助。
避免使用split或创建多个字符串占用内存。
是否有任何可以快速使用的kotlin函数/String.format呢?
我认为没有非常简单的方法来做到这一点,但有一种传统的方法:
val number = "8888319024981442"
val list = mutableListOf<String>()
for (i in 0..3) { list.add(number.substring(i*4, (i+1)*4))}
println(list.joinToString(" "))
编辑
或者 @IR42 的简单回答
number.chunked(4).joinToString(separator = " ")
我认为没有一个既简单又优雅的答案,同时避免所有临时对象。
对于前者,IR42使用chunked()
可能是最好的选择。
以下是对后者的尝试:
val number = "8888319024981442"
val result = buildString {
for (i in 0 until number.length) {
if (i % 4 == 0 && i > 0)
append(' ')
append(number[i])
}
}
println(result) // '8888 3190 2498 1442'
number
按照每四个数字一组进行分块,然后用空格作为分隔符将这些分块的数字转换成字符串。具体实现代码为:number.chunked(4).joinToString(separator = " ")
。 - IR42ArrayList
,一个IntRange
和四个子String
,除了必要的StringBuilder
和结果String
外。 - gidds