我如何在Kotlin中将String拆分为数组?

时间:2017-09-04 13:49:18

标签: java arrays string kotlin

我需要将从文件读入的String拆分为值数组。我想用逗号分割String,例如,如果String读取:

"name, 2012, 2017"

数组中的值为:

  • 数组索引0 - 名称
  • 数组索引1 - 2012
  • 阵列索引2 - 2017

我在Java中找到了这个例子:

String[] stringArray = string.split(",");

我怎么能在Kotlin做到这一点?

6 个答案:

答案 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"