在我的字符串中,我可以有任意多个以逗号分隔的单词。我希望将每个单词添加到ArrayList中。例如:
String s = "a,b,c,d,e,.........";
在我的字符串中,我可以有任意多个以逗号分隔的单词。我希望将每个单词添加到ArrayList中。例如:
String s = "a,b,c,d,e,.........";
Answers:
尝试类似
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
演示:
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]
这篇文章在这里已被重写为文章。
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("^\\[|]$", "");
选项1:
List<String> list = Arrays.asList("hello");
选项2:
List<String> list = new ArrayList<String>(Arrays.asList("hello"));
我认为Option1更好,因为
asList
方法创建并返回一个ArrayList对象。请在这里参考文档
List<Character> word1 = new ArrayList<Character>(Arrays.asList(A[0].toCharArray()));
我尝试获取字符串数组的第一个String,并将该字符串转换为charArray并将该charArray转换为List <Character>
在Java 9中,使用List#of
,这是不可变列表静态工厂方法,变得更加简单。
String s = "a,b,c,d,e,.........";
List<String> lst = List.of(s.split(","));
s.split("\\s*,\\s*")
可以添加额外的照顾
好吧,我将在这里扩展答案,因为很多来这里的人都希望将字符串用空格分隔。这是这样做的:
List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));
您可以使用:
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);
如果要将字符串转换为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
*/
如果您使用的是番石榴(应该这样做,请参阅有效的Java项目#15):
ImmutableList<String> list = ImmutableList.copyOf(s.split(","));
new ArrayList<String>()
视使用方式而定可能是多余的。(如您的示例所示;)