【问题标题】:Best Way to Convert ArrayList to String in Kotlin在 Kotlin 中将 ArrayList 转换为字符串的最佳方法
【发布时间】:2019-10-24 04:36:25
【问题描述】:

我在 kotlin 中有一个字符串的 ArrayList

private val list = ArrayList<String>()

我想将其转换为String,并带有分隔符“,”。我知道我们可以通过循环以编程方式做到这一点,但在其他语言中,我们有可用的映射函数,就像我们在 java 中一样

StringUtils.join(list);

在 Swift 中我们有

array.joined(separator:",");

是否有任何方法可以将ArrayList 转换为String Kotlin 中的分隔符?

如何添加自定义分隔符,如“-”等?

【问题讨论】:

    标签: android string arraylist kotlin


    【解决方案1】:

    在 kotlin 中有 reduce 函数,它与 javascript 中的相同。此函数迭代所有列表值并添加到先前的值。

    val listVal: List<String> = listOf("a","b","c","d")
    val stringVal = listVal.reduce{ acc, s -> 
                    "$acc : ${s.uppercase()}"
    } 
    

    【讨论】:

      【解决方案2】:

      Kotlin 有 joinToString 方法就是为了这个

      list.joinToString()
      

      您可以像这样更改分隔符

      list.joinToString(separator = ":")
      

      如果你想更多地自定义它,这些都是你可以在这个函数中使用的参数

      val list = listOf("one", "two", "three", "four", "five")
      println(
          list.joinToString(
              prefix = "[",
              separator = ":",
              postfix = "]",
              limit = 3,
              truncated = "...",
              transform = { it.uppercase() }
          )
      )
      

      哪个输出

      [一:二:三:...]

      【讨论】:

      • 添加自己的分隔符怎么样?
      • 嗨,谁能帮帮我。当我的 arraylist 大小为 1 时, joinToString 产生 ","?
      【解决方案3】:

      Kotlin 也有相应的方法,称为 joinToString

      你可以这样称呼它:

      list.joinToString());

      因为默认情况下它使用逗号作为分隔符,但您也可以将自己的分隔符作为参数传递,该方法除了分隔符之外还需要相当多的参数,这允许进行很多格式化,如前缀、后缀等。

      您可以阅读所有相关信息here

      【讨论】:

      • 添加自己的分隔符怎么样?
      • 你可以肯定 joinToString(separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", limit: Int = -1, truncated: CharSequence = ".. .", 变换: ((T) -> CharSequence)? = null)
      猜你喜欢
      • 2010-10-10
      • 2017-11-08
      • 1970-01-01
      • 2014-06-21
      • 2011-12-27
      • 2017-07-26
      • 1970-01-01
      • 2011-11-26
      相关资源
      最近更新 更多