【问题标题】:How do I split this string back into a list? Using kotlin如何将此字符串拆分回列表?使用科特林
【发布时间】:2021-02-16 23:51:50
【问题描述】:

我正在保存要保存到共享首选项的字符串列表,但由于我必须将列表另存为字符串,因此我真的很难将字符串拆分回列表中。 我的弦:

"Wellington, NZ"
"Sydney, AU"
"Melbourne, AU"

我将其保存在共享首选项中为"Wellington, NZ, Sydney, AU, Melbourne AU" 如何将字符串拆分回列表?我不能使用 string.split(",") 因为它会在每个 "," 处拆分,我也尝试过使用正则表达式错误,但没有运气。

鉴于我在共享首选项中的字符串是:

val stringToSplit = "Wellington, NZ, Sydney, AU, Melbourne AU"

我需要将其拆分成一个如下所示的列表:

val listOfPlaces = ["Wellington, NZ",
                    "Sydney, AU",
                    "Melbourne, AU"]

【问题讨论】:

  • 为什么不能使用 prefs 中的 stringList api?但是,如果您 100% 确定所有项目中都包含逗号,那么您可能可以尝试在每 2 个逗号后拆分。
  • 哦,我不知道你可以在共​​享首选项中保存集合!
  • 我在打电话,很难用它写答案,但您也可以提供答案并接受它。我想它也会给你一个徽章(我这么说是因为我认为你是一个新加入者)

标签: android kotlin sharedpreferences


【解决方案1】:

请试试这个:

val s = "a,b,c,d,e"
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")))

你会得到字符串列表

【讨论】:

    【解决方案2】:

    我认为最简单的方法是附加一个新的字符串,它结合了以前的 ie:

    string1= "Washington, WA"
    string2= "Alaska, AK"
    string3= "Montana, MT"
    string4 = []
    string4.append(string1)
    string4.append(string2)
    string4.append(string3)
    
    print(string4)
    

    哪个打印:

    ['Washington, WA', 'Alaska, AK', 'Montana, MT']
    

    如果你需要城市和州作为它们自己的元素,你也可以先拆分它们。

    【讨论】:

    • 你怎么能从 "'Washington, WA', 'Alaska, AK', 'Montana, MT'" 回到 3 个单独的字符串?那是我的问题
    • 哦,那是我的错......我相信你可以使用 np.array_split()
    • 如:split_this = np.array_split(string4, len(string4)) 它将列表除以它的长度,因此它将列表的每个元素拆分成自己的数组
    • 感谢您的帮助,但也许我没有足够清楚地解释我想要做什么......我已经编辑了我的问题
    【解决方案3】:

    您可以使用chunckedsplit 来实现这一目标

    val stringToSplit = "Wellington, NZ, Sydney, AU, Melbourne AU"
    val splits = stringToSplit.split(",")
    val result = splits.chunked(splits.size / 2).map { it.joinToString(",") }
    result.forEach { print(it) }
    

    【讨论】:

    • 啊,太棒了,这是一个很好的解决方案,谢谢!但是我发现我可以将字符串的 Arraylist 保存为 sharedpreferences 中的 HashSet,因此我不再需要将列表转换为字符串并再次转换回列表。
    猜你喜欢
    • 1970-01-01
    • 2021-05-09
    • 2017-07-08
    • 2013-01-14
    • 2017-09-22
    • 2021-12-18
    相关资源
    最近更新 更多