我在下面有这段文字
String text = "a b c a a b b b c d a z e q e m a m d z e"
如何将它们像这样放置在数组中
ArrayList<String> array = new ArrayList<>();
//array above should be has {"a","b","c","d","z","e","q","m"}
我该怎么做?
答案 0 :(得分:1)
按空格分隔String
,在其中创建一个LinkedHashSet
-这将删除重复项并保留元素顺序(因为Set
不允许重复值,并且使用了{{3 }}和Object::equals
方法。LinkedHashSet
还保留元素添加顺序)。然后使用其复制构造函数创建ArrayList
:
LinkedHashSet<String> set = Arrays.stream(text.split("\\s"))
.collect(Collectors.toCollection(LinkedHashSet::new));
List<String> list = new ArrayList<>(set);
答案 1 :(得分:1)
使用流的另一种方法:
String text = "a b c a a b b b c d a z e q e m a m d z e";
ArrayList<String> array = Pattern.compile(" ")
.splitAsStream(text)
.distinct()
.collect(Collectors.toCollection(ArrayList::new));
System.out.println(array);
答案 2 :(得分:0)
使用列表创建集合清除列表将集合项添加到列表
yourList.addAll(Arrays.asList(text.split(" ")));
Set<String> set = new HashSet<>(yourList);
yourList.clear();
yourList.addAll(set);
答案 3 :(得分:0)
字符串文本=“ a b c a a b b b c d a z e q e a m d z e”
ArrayList array = new ArrayList <>();
array.addAll(Arrays.asList(text.split(“”))))
答案 4 :(得分:0)
使用设置为不重复元素
String text = "a b c a a b b b c d a z e q e m a m d z e"
Set<String> set = new HashSet<String>();
or change DTRING TO CHAR
set .addAll(text);