如何正确将 String 转换为 ArrayList?
Posted
技术标签:
【中文标题】如何正确将 String 转换为 ArrayList?【英文标题】:How to convert String into ArrayList properly? 【发布时间】:2021-10-21 14:43:27 【问题描述】:我想将此String
转换为ArrayList
字符串
["one","two","three"]
我用过这个方法
List<String> logopath = Arrays.asList(pos.split("\\s*,\\s*"));
我从logopath
得到这个输出
0 = "["one""
1 = ""two""
2 = ""three"]"
但我希望logopath
的输出是这样的:
0 = "one"
1 = "two"
2 = "three"
【问题讨论】:
【参考方案1】:您的字符串实际上是有效的 JSON,所以我建议在这里使用 JSON 解析器:
String input = "[\"one\",\"two\",\"three\"]";
Gson gson = new Gson();
JsonArray items = gson.fromJson(input, JsonArray.class);
List<String> list = new ArrayList<>();
for (JsonElement item : items)
String num = item.getAsString();
list.add(num);
System.out.println(list);
【讨论】:
非常感谢,但 items 是JsonArray
但我需要 List 或 Arraylist
这个较短的版本可以在 Java 16 中使用吗? List<String> list = new Gson().fromJson( input, JsonArray.class ).stream().map( JsonElement :: getAsString ).toList()
@Basil 通常我会提供您的流版本(或类似的版本),但我是用手机接听的,因此无法对其进行测试。
@BasilBourque 谢谢,这基本上也可以,但我使用 java 1.7,所以我认为我不能使用流。【参考方案2】:
可以如下实现,
String input[] = "one","two","three";
List<String> arrList = new ArrayList<>();
for(String s:input)
arrList.add(s);
System.out.print(arrList);
【讨论】:
谢谢,但我的字符串只是string
而不是 string[]
,所以我无法应用它。以上是关于如何正确将 String 转换为 ArrayList?的主要内容,如果未能解决你的问题,请参考以下文章
将 ArrayList 转换为 Array - 不确定如何使用它 [重复]