我想要实现的是计算输入中具有相同值的字符串的数目。
Scanner reader = new Scanner(System.in);
Set group1 = new HashSet();
Set group2 = new HashSet();
Set self = new HashSet();
for (int i = 1; i <= 3; i++) {
System.out.print("Enter birt month " + i + ": ");
group1.add(reader.next());
}
for (int i = 1; i <= 3; i++) {
System.out.print("Enter birt month " + i + ": ");
group2.add(reader.next());
}
System.out.print("Enter your birth month: ");
self.add(reader.next());
if (group1.contains(self) || group2.contains(self)) {
count++;
}
System.out.println("You have the same birth month with " + count + " of your classmate.");
但我没有得到应有的价值,我得到的是即使 group1
或者 group2
与 HashSet
命名 self
计数器没有上升,一直是0,我不知道为什么。任何提示或请帮助我如何做到这一点。我也试着反过来把if语句转换成 self.contains(group1) || self.contains(group2);
以确定自身是否具有相同的组1或组2
解决了的!!
我所需要的只是 containsAll
如果 group1
以及 group2
在一个叫 self
2条答案
按热度按时间3pmvbmvn1#
所以,你的问题是这个。
group1.contains(self)
检查对象self
存在于第1组中,而不是这里的情况。在这里,你想把它和一个集合进行比较
self
这是一个集合。改变
group1.contains(self)
至group1.containsAll(self)
.pepwfjgg2#
另外,我发现的另一个问题是,递增的count变量只有一次if。我的建议是,使用2如果条件如下,
如果两个集合都有“self”,则上述条件会起作用