java - item - string split to list python




如何將逗號分隔的字符串轉換為ArrayList? (15)

Arrays.asList返回一個由數組支持的固定大小的List 。 如果你想要一個普通的可變java.util.ArrayList你需要這樣做:

List<String> list = new ArrayList<String>(Arrays.asList(string.split(" , ")));

或者,使用番石榴

List<String> list = Lists.newArrayList(Splitter.on(" , ").split(string));

使用分隔符可以更靈活地分割字符串,並讓您能夠在結果中跳過空字符串並修剪結果。 它也比String.split具有更少的奇怪行為,並且不需要用正則表達式分割(這只是一個選項)。

有沒有Java中的內置方法,它允許我們將逗號分隔的字符串轉換為某個容器(例如數組,列表或矢量)? 或者我需要為此編寫自定義代碼?

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

字符串 - >集合轉換:(String - > String [] - > Collection)

//         java version 8

String str = "aa,bb,cc,dd,aa,ss,bb,ee,aa,zz,dd,ff,hh";

//          Collection,
//          Set , List,
//      HashSet , ArrayList ...
// (____________________________)
// ||                          ||
// \/                          \/
Collection<String> col = new HashSet<>(Stream.of(str.split(",")).collect(Collectors.toList()));

集合 - >字符串[]轉換:

String[] se = col.toArray(new String[col.size()]);

字符串 - >字符串[]轉換:

String[] strArr = str.split(",");

收藏 - >收藏品

List<String> list = new LinkedList<>(col);

一個使用Collections的例子。

import java.util.Collections;
 ...
String commaSeparated = "item1 , item2 , item3";
ArrayList<String> items = new ArrayList<>();
Collections.addAll(items, commaSeparated.split("\\s*,\\s*"));
 ...

你可以從apache lib中獲取StringUtils。

StringUtils.join(yourStirng, ',');

兩個步驟:

  1. String [] items = commaSeparated.split(",");
  2. List<String> container = Arrays.asList(items);

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

list = str.tokenize(',')

將Collection轉換為Java 8中用逗號分隔的字符串

listOfString對象包含[“A”,“B”,“C”,“D”] elements-

listOfString.stream().map(ele->"'"+ele+"'").collect(Collectors.joining(","))

輸出是: - 'A','B','C','D'

並將字符串數組轉換為Java 8中的列表

    String string[] ={"A","B","C","D"};
    List<String> listOfString = Stream.of(string).collect(Collectors.toList());

您可以使用Guava來分割字符串,並將其轉換為ArrayList。 這也適用於空字符串,並返回一個空列表。

import com.google.common.base.Splitter;
import com.google.common.collect.Lists;

String commaSeparated = "item1 , item2 , item3";

// Split string into list, trimming each item and removing empty items
ArrayList<String> list = Lists.newArrayList(Splitter.on(',').trimResults().omitEmptyStrings().splitToList(commaSeparated));
System.out.println(list);

list.add("another item");
System.out.println(list);

輸出以下內容:

[item1, item2, item3]
[item1, item2, item3, another item]

我通常使用預編譯模式作為列表。 而且這更具普遍性,因為它可以考慮遵循一些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();

有很多方法可以在Java 8中使用流來解決這個問題,但IMO以下一行很簡單:

String  commaSeparated = "item1 , item2 , item3";
List<String> result1 = Arrays.stream(commaSeparated.split(" , "))
                                             .collect(Collectors.toList());
List<String> result2 = Stream.of(commaSeparated.split(" , "))
                                             .collect(Collectors.toList());

這下面的代碼可能會幫助你,

List myList = new ArrayList();
String myStr = "item1 , item2 , item3";
myList = Arrays.asList(myStr.split(" , "));

這裡是另一個將CSV轉換為ArrayList的例子:

String str="string,with,comma";
ArrayList aList= new ArrayList(Arrays.asList(str.split(",")));
for(int i=0;i<aList.size();i++)
{
    System.out.println(" -->"+aList.get(i));
}

打印你

- >字符串
- >使用
- >逗號


List commaseperated = new ArrayList();
String mylist = "item1 , item2 , item3";
mylist = Arrays.asList(myStr.trim().split(" , "));

// enter code here

List<String> items = Arrays.asList(commaSeparated.split(","));

這應該適合你。


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




split