【问题标题】:Kotlin String to Int arrayKotlin 字符串到 Int 数组
【发布时间】:2018-05-03 03:37:11
【问题描述】:

我正在寻找转换字符串的最有效方法

"[1,2,3,4,5]"

到 Kotlin 中的 Int [1,2,3,4,5] 数组

【问题讨论】:

  • 在 JavaScript 版本中JSON.parse<Array<Int>>("[1,2,3,4,5]")
  • 嗨 Julian,您建议的重复问题是指字符串数组,显然这里不是这种情况。这个问题只有一个字符串,包含和数组 Int
  • 为了更好地理解,这里有一个问题要求相同的情况,但在 Java stackoverflow.com/questions/7646392/…
  • This answer 到上述问题很容易翻译成地道的 Kotlin。或者使用 klaxon 或 JSONObject,得到类似@Slai's 的答案

标签: arrays string int kotlin


【解决方案1】:

幸运的是,我已经成功了,所以我把它留在这里以备将来参考

val result = "[1,2,3,4,5]".removeSurrounding("[", "]").split(",").map { it.toInt() }

非常感谢大家!

【讨论】:

    【解决方案2】:

    当用户将列表转换为字符串并再次需要该字符串时。 由于整数应用程序之间的空间导致 NumberFormatException 崩溃,因此只需删除不必要的空间。

    val result = "[1, 2, 3, 4, 5]".removeSurrounding("[","]").replace(" ","").split(",").map { it.toInt() }
    

    【讨论】:

    • 只需调用 it.trim().toInt() 即可删除空格
    【解决方案3】:

    尝试使用 toCharArray() 先切割和最后切割('[' 和 ']')

    inline fun String.toCharArray(
        destination: CharArray, 
        destinationOffset: Int = 0, 
        startIndex: Int = 1, 
        endIndex: Int = length -1
    ): CharArray (source)
    

    然后您可以手动将转换后的值从 char 复制到新数组中的 int

    See more in the kotlin webpage

    【讨论】:

      【解决方案4】:

      还有另一种实现方式:

      "[1,2,3,4,5]".replace(Regex("""[\[,\]]"""), "").map { it - '0' }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-13
        • 2016-06-11
        • 1970-01-01
        • 2019-11-20
        • 2020-09-02
        • 1970-01-01
        相关资源
        最近更新 更多