【发布时间】:2023-04-08 16:00:01
【问题描述】:
我有 2 个列表,其中一个用于关键字的句子。这个想法是检查句子是否有关键字。并将它们按顺序排列在每个句子的列表中。
如果这里已经提前复制了,我很抱歉。
List <String> sentence= new ArrayList <>();
sentence.add("this is a good dog");
sentence.add("cats drink milk");
sentence.add("Animals are beautiful creatures");
List <String> keyword= new ArrayList <>();
keyword.add("dog");
keyword.add("cats");
keyword.add("beautiful");
keyword.add("good");
keyword.add("are");
keyword.add("this");
keyword.add("milk");
我的想法是为每个列表创建 2 个嵌套循环:
for (int b = 0; b < sentence.size(); b++) {
for (int c = 0; c < keyword.size(); c++) {
if (sentence.get(b).contains(keyword.get(c))) {
System.out.println(keyword.get(c));
}
}
}
这个的输出是:
dog
good
this
cats
milk
beautiful
are
期望的输出是:
[this,good,dog]
[cats,milk]
[are,beautiful]
所以这就像获取所有现有的关键字,按句子的顺序,与关键字顺序无关。
然后按照存在的顺序对每个句子的现有关键字进行分组。
希望很清楚。真的很感激任何想法。不必遵循相同的方法。
【问题讨论】:
-
是的,感谢您的建议,我不时将其更改为旧学校。在这种情况下,我会寻找地图。对我来说很有意义,但如果你能提供一个例子,也很好。
-
使用
java.util.ArrayList.contains(Object)并摆脱嵌套循环