在 Kotlin 中将 ArrayList 转换为字符串的最佳方法

Posted

技术标签:

【中文标题】在 Kotlin 中将 ArrayList 转换为字符串的最佳方法【英文标题】:Best Way to Convert ArrayList to String in Kotlin 【发布时间】: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 中的分隔符?

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

【问题讨论】:

【参考方案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)

以上是关于在 Kotlin 中将 ArrayList 转换为字符串的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

在 Kotlin 中将 ArrayList 转换为字符串的最佳方法

在 Kotlin 中将 Dp 转换为 Px - 此转换永远不会成功

如何在处理程序中将 java 转换为 kotlin

如何在 Kotlin 中将 String 转换为 Int?

如何在 Kotlin 中将 Firestore 日期/时间戳转换为日期?

如何在 Kotlin 中将数据类转换为 ByteBuffer?