Java 检查用户输入是否与HashMap值匹配

Java 检查用户输入是否与HashMap值匹配,java,Java,一段时间以来,我一直在努力让这个测验起作用。在我试图数一数用户答对了多少问题之前,一切似乎都在进行中。似乎“正确的”变量没有在应该添加的时候添加。它始终显示0 public class PresidentQuiz { public static void main(String[] args) { Integer correct = 0; Map<Integer, String> president1 = new HashMap<Int

一段时间以来,我一直在努力让这个测验起作用。在我试图数一数用户答对了多少问题之前,一切似乎都在进行中。似乎“正确的”变量没有在应该添加的时候添加。它始终显示0

public class PresidentQuiz {

    public static void main(String[] args) {
        Integer correct = 0;
        Map<Integer, String> president1 = new HashMap<Integer, String>();
        president1.put(35, "Kennedy");
        president1.put(36, "Johnson");
        president1.put(37, "Nixon");
        president1.put(38, "Ford");
        president1.put(39, "Carter");
        president1.put(40, "Reagan");
        president1.put(41, "George Bush");
        president1.put(42, "Clinton");
        president1.put(43, "George W Bush");
        president1.put(44, "Obama");
        System.out.println("Size of map: " + president1.size());

        Map<Integer, String> president2 = new TreeMap<Integer, String>(president1); 
        Set set1 = president2.entrySet();
        Iterator iterator1 = set1.iterator();
        while(iterator1.hasNext()) {
             Map.Entry me = (Map.Entry)iterator1.next();
             System.out.print("President #" + me.getKey() + ": ");
             System.out.println(me.getValue());
            }
        HashSet<Integer> randint = new HashSet<Integer>();
        while(randint.size() < 5) {
            randint.add((int) (Math.random() * ((44 - 35) + 1) + 35));
        }
        System.out.println();
        System.out.println("Presidents Quiz");
        System.out.println();
        String pres = null;
        Iterator<Integer> iterator2 = randint.iterator();
        @SuppressWarnings("resource")
        Scanner input = new Scanner(System.in); 
        while(iterator2.hasNext()) {
            System.out.println("Who was president #" + iterator2.next() + "?");
            pres = input.next();
        }
        while(iterator2.hasNext()) {
            String name = president1.get(iterator2.next());
            if (name == pres) {
                correct += 1;
            }
        }
        // Print correct score
        System.out.println("Your score was " + correct);
        System.out.println();
        // Want to sort names in alphabetical order
        System.out.println("Here are the last 10 presidents in alphabetical order:");

        }
    }
公共课堂主持人问答{
公共静态void main(字符串[]args){
整数正确=0;
Map president1=新的HashMap();
主席1.普特(35,“肯尼迪”);
主席1.普特(36,“约翰逊”);
主席1.普特(37,“尼克松”);
主席1.普特(38,“福特”);
主席1.普特(39,“卡特”);
主席1.普特(40,“里根”);
主席1.普特(41,“乔治·布什”);
主席1.普特(42,“克林顿”);
主席1.普特(43,“乔治·W·布什”);
主席1.普特(44,“奥巴马”);
System.out.println(“地图大小:+president1.Size());
Map president2=新树映射(president1);
Set set1=president2.entrySet();
迭代器迭代器1=set1.Iterator();
while(iterator1.hasNext()){
Map.Entry me=(Map.Entry)迭代器1.next();
System.out.print(“President#“+me.getKey()+”:”;
System.out.println(me.getValue());
}
HashSet randint=新的HashSet();
while(randint.size()<5){
randint.add((int)(Math.random()*((44-35)+1)+35));
}
System.out.println();
System.out.println(“校长测验”);
System.out.println();
字符串pres=null;
迭代器迭代器2=randint.Iterator();
@抑制警告(“资源”)
扫描仪输入=新扫描仪(System.in);
while(iterator2.hasNext()){
System.out.println(“谁是总统”#“+iterator2.next()+”?”;
pres=input.next();
}
while(iterator2.hasNext()){
String name=president1.get(迭代器2.next());
if(name==pres){
正确+=1;
}
}
//打印正确的分数
System.out.println(“您的分数是”+正确的);
System.out.println();
//要按字母顺序对名称进行排序吗
System.out.println(“以下是按字母顺序排列的最后10位总统:”);
}
}

不能使用
=
比较字符串。必须使用
equals()
。看