【发布时间】:2019-04-01 02:13:54
【问题描述】:
我想检查一个字符串是否包含指定的单词。如果字符串包含指定的单词,我不想打印它。现在可能有多余的单词,但我只会打印不包括我的预定义单词列表的唯一单词,例如“traffic”、“collapse”。 为此,我使用 Set 来存储唯一的字符串,并使用 if 语句和 contains 进行检查。但它不能正常工作。尽管我预定义的限制性词是“流量”,但我的程序仍然会打印流量以及所有单词。似乎过滤器/包含方法无法正常工作。 P.S:我将所有单词都转换为小写以避免区分大小写。下面是我的代码。请帮我理解什么是错的?我正在使用 Java 代码。
import java.util.HashSet;
import java.util.Set;
public class SetTest {
public static void main(String[] args) {
Set<String> placeSet=new HashSet<String> ();
String s1="traffic";
String s2="mumbai";
String s3="Mumbai";
String s4="roadcollapse";
placeSet.add(s1.toLowerCase());
placeSet.add(s2.toLowerCase());
placeSet.add(s3.toLowerCase());
placeSet.add(s4.toLowerCase());
for (String place:placeSet)
{
if (!place.contains("traffic") || !place.contains("collapse"))
{
System.out.println (place);
}
}
}
}
【问题讨论】:
-
尝试将
||替换为&&
标签: java filter contains hashset