在Java中是否有任何内置的方法允许我们将逗号分隔的字符串转换为一些容器(例如数组,列表或向量)?或者我需要为此编写自定义代码吗?

String commaSeparated = "item1 , item2 , item3";
List<String> items = //method that converts above string into list??

当前回答

在groovy中,你可以使用tokenize(Character Token)方法:

list = str.tokenize(',')

其他回答

List<String> items= Stream.of(commaSeparated.split(","))
     .map(String::trim)
     .collect(Collectors.toList());

使用Splitter类可以获得相同的结果。

var list = Splitter.on(",").splitToList(YourStringVariable)

(用kotlin写)

你可以先使用String.split(",")分割它们,然后使用Arrays.asList(array)将返回的String数组转换为数组列表

ArrayList<HashMap<String, String>> mListmain = new ArrayList<HashMap<String, String>>(); 
String marray[]= mListmain.split(",");

我通常使用预编译模式的列表。而且这也更通用一些,因为它可以考虑一些listToString表达式后面的括号。

private static final Pattern listAsString = Pattern.compile("^\\[?([^\\[\\]]*)\\]?$");

private List<String> getList(String value) {
  Matcher matcher = listAsString.matcher((String) value);
  if (matcher.matches()) {
    String[] split = matcher.group(matcher.groupCount()).split("\\s*,\\s*");
    return new ArrayList<>(Arrays.asList(split));
  }
  return Collections.emptyList();