3 回答
TA贡献1835条经验 获得超7个赞
如果字符串包含指定的单词,我不想打印它。
使用&&代替||
for (String place:placeSet)
{
if (!place.contains("traffic") && !place.contains("collapse"))
{
System.out.println (place);
}
}
TA贡献1831条经验 获得超4个赞
如果您只想打印不包含任何列入黑名单的单词的单词,则条件应如下所示:
for (String place:placeSet)
{
if (!(place.contains("traffic") || place.contains("collapse"))) {
System.out.println (place);
}
}
因为要打印word不包含word_1或word_1,所以应该是 NOT (condition1 OR condition2)
如果有多个列入黑名单的单词,您也可以使用 Set:
public static void main(String[] args) {
Set<String> blacklist = Stream.of("traffic","collapse").collect(Collectors.toSet());
...
for (String place:placeSet) {
if (blacklist.stream().noneMatch(place::contains)) {
System.out.println (place);
}
}
}
TA贡献1877条经验 获得超6个赞
对我来说方便的方法 - 流 API
placeSet.stream()
.filter(p -> !p.contains("traffic"))
.filter(p -> !p.contains("collapse"))
.forEach(System.out::println);添加回答
举报
