【发布时间】:2011-11-12 22:54:33
【问题描述】:
在我的字符串中,我可以有任意数量的以逗号分隔的单词。我希望将每个单词添加到 ArrayList 中。例如:
String s = "a,b,c,d,e,.........";
【问题讨论】:
标签: java string arraylist converter
在我的字符串中,我可以有任意数量的以逗号分隔的单词。我希望将每个单词添加到 ArrayList 中。例如:
String s = "a,b,c,d,e,.........";
【问题讨论】:
标签: java string arraylist converter
试试类似的东西
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
Arrays.asList documentationString.split documentationArrayList(Collection) constructor documentation演示:
String s = "lorem,ipsum,dolor,sit,amet";
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
System.out.println(myList); // prints [lorem, ipsum, dolor, sit, amet]
本帖已改写为文章here。
【讨论】:
new ArrayList<String>() 可能是多余的,具体取决于它的使用方式。 (就像在你的例子中一样;)
split 之后:P
Arrays.toString() 来打印它,但是是的。
String s1="[a,b,c,d]";
String replace = s1.replace("[","");
System.out.println(replace);
String replace1 = replace.replace("]","");
System.out.println(replace1);
List<String> myList = new ArrayList<String>(Arrays.asList(replace1.split(",")));
System.out.println(myList.toString());
【讨论】:
replace = s1.replaceAll("^\\[|]$", "");一步完成
"," 和其他", " 作为分隔符,所以我在split 函数之前添加了一个.replaceAll(", ", ",")。
选项1:
List<String> list = Arrays.asList("hello");
选项2:
List<String> list = new ArrayList<String>(Arrays.asList("hello"));
在我看来,Option1 更好,因为
asList 方法创建并返回一个 ArrayList 对象。请参考文档here
【讨论】:
List<Character> word1 = new ArrayList<Character>(Arrays.asList(A[0].toCharArray())); 我正在尝试获取字符串数组的第一个字符串,并将该字符串转换为 charArray 并将该 charArray 转换为 List在 Java 9 中,使用 List#of,这是一个不可变列表静态工厂方法,变得更加简单。
String s = "a,b,c,d,e,.........";
List<String> lst = List.of(s.split(","));
【讨论】:
s.split("\\s*,\\s*") 可以添加额外的照顾
这样比较容易理解:
String s = "a,b,c,d,e";
String[] sArr = s.split(",");
List<String> sList = Arrays.asList(sArr);
【讨论】:
好的,我将在这里扩展答案,因为很多来到这里的人都想用 空格 分割字符串。这样做是这样的:
List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));
【讨论】:
如果您正在导入或者您的代码中有一个数组(字符串类型),并且您必须将其转换为 arraylist(offcourse 字符串),那么使用集合会更好。像这样:
String array1[] = getIntent().getExtras().getStringArray("key1"); or String array1[] = ... then
List allEds = new ArrayList(); Collections.addAll(allEds, array1);
【讨论】:
你可以使用:
List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());
您首先应该问自己是否真的需要 ArrayList。很多时候,您将根据其他条件过滤列表,而 Stream 是完美的。你可能想要一套;您可能想通过另一个正则表达式等来过滤它们。顺便说一下,Java 8 提供了这个非常有用的扩展,它适用于任何CharSequence:https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#splitAsStream-java.lang.CharSequence-。由于您根本不需要数组,因此请避免创建它:
// This will presumably be a static final field somewhere.
Pattern splitter = Pattern.compile("\\s+");
// ...
String untokenized = reader.readLine();
Stream<String> tokens = splitter.splitAsStream(untokenized);
【讨论】:
如果您想将 string 转换为 ArrayList,请尝试以下操作:
public ArrayList<Character> convertStringToArraylist(String str) {
ArrayList<Character> charList = new ArrayList<Character>();
for(int i = 0; i<str.length();i++){
charList.add(str.charAt(i));
}
return charList;
}
但我在您的示例中看到了一个字符串数组,因此如果您想将 字符串数组 转换为 ArrayList,请使用:
public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
ArrayList<String> stringList = new ArrayList<String>();
for (String s : strArr) {
stringList.add(s);
}
return stringList;
}
【讨论】:
这是在 Kotlin 中使用 Gson
val listString = "[uno,dos,tres,cuatro,cinco]"
val gson = Gson()
val lista = gson.fromJson(listString , Array<String>::class.java).toList()
Log.e("GSON", lista[0])
【讨论】:
我们来回答一个问题:反转字符串。我将使用stream().collect() 来做到这一点。但首先我要将字符串更改为 ArrayList 。
public class StringReverse1 {
public static void main(String[] args) {
String a = "Gini Gina Proti";
List<String> list = new ArrayList<String>(Arrays.asList(a.split("")));
list.stream()
.collect(Collectors.toCollection( LinkedList :: new ))
.descendingIterator()
.forEachRemaining(System.out::println);
}}
/*
The output :
i
t
o
r
P
a
n
i
G
i
n
i
G
*/
【讨论】:
我推荐使用StringTokenizer,效率很高
List<String> list = new ArrayList<>();
StringTokenizer token = new StringTokenizer(value, LIST_SEPARATOR);
while (token.hasMoreTokens()) {
list.add(token.nextToken());
}
【讨论】:
如果您使用的是番石榴(您应该使用,请参阅 effective java item #15):
ImmutableList<String> list = ImmutableList.copyOf(s.split(","));
【讨论】: