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, ',');
兩個步驟:
-
String [] items = commaSeparated.split(",");
-
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());