我需要将从文件读入的String拆分为值数组。我想用逗号分割String,例如,如果String读取:
"name, 2012, 2017"
数组中的值为:
我在Java中找到了这个例子:
String[] stringArray = string.split(",");
我怎么能在Kotlin做到这一点?
答案 0 :(得分:16)
val strs = "name, 2012, 2017".split(",").toTypedArray()
答案 1 :(得分:1)
如果我们有一个由诸如“,”之类的任何字符分隔的值的字符串:
val values = "Name1 ,Name2, Name3" // Read List from somewhere
val lstValues: List<String> = values .split(",").map { it -> it.trim() }
lstValues.forEach { it ->
Log.i("Values", "value=$it")
//Do Something
}
最好使用trim()删除字符串周围的空格(如果存在)。 考虑一下,如果在字符串的末尾有一个“,”,它将使它成为一个空项目,因此可以在拆分之前使用以下代码对其进行检查:
if ( values.endsWith(",") )
values = values.substring(0, values.length - 1)
如果要将列表转换为Array,请使用以下代码:
var arr = lstValues.toTypedArray()
arr.forEach { Log.i("ArrayItem", " Array item=" + it ) }
答案 2 :(得分:1)
很简单:
firebaseDb.collection('users').doc('fyuAqykYpMVnB0h9grdznZgEcaU2')
.update( `balanceRecords.${year}`: {
// whatever properties you want
})
您得到:yourArray [0] == leo,yourArray [1] == Ana,yourArray [2] == John
答案 3 :(得分:1)
使用内置的拆分方法拆分字符串,然后使用方法扩展isNum()返回数字。
fun String.isNum(): Boolean{
var num:Int? = this.trim().toIntOrNull()
return if (num != null) true else false
}
for (x in "name, 2012, 2017".split(",")) {
println(x.isNum())
}
答案 4 :(得分:0)
如果你想在 kotlin split
中使用多个/几个分隔符,你需要单独传递它们:
val validUrl = "http://test.com/</a> -".split(">", " ", "<").first()
答案 5 :(得分:0)
var mString = "853 kB"
val mString = newSize!!.split(" ").toTypedArray()
这里的分割参数是空格
mString.get(0) = "853"
mString.get(1) = "kB"