关于将Word设置为变量的Java问题

时间:2012-06-28 03:22:59

标签: java

我正在制作一个石头剪刀程序。我希望程序的用户输入摇滚,纸张或剪刀(因此导入的扫描仪),我希望计算机选择一个随机数(我将导入一个java.util.Random),它对应于另一个摇滚,纸张,或剪刀。

所以我试图让程序识别一个单词作为重要的东西。也就是说,如果用户在扫描仪中输入“摇滚”,则计算机将进行一些输出。在下面的代码中,如果用户输入“rock”,我试图让计算机输出“yes”。为此,我将一个名为“player”的变量设置为输入文本,将String rock设置为短语“rock”。然后我说如果玩家=摇滚(=“摇滚”),那么我们就会得到“是”。

程序中没有错误。但是当我将“摇滚”输入扫描仪时,程序什么也没做。我做错了什么,如何纠正?

import java.util.Scanner;

public class Refined {

    public static void main(String[] args){
        Scanner abc = new Scanner(System.in);
        String rock = "rock";

        String player;
        System.out.println("Rock, Paper, or Scissors?");
        player = abc.next();
        if(player == rock){
            System.out.println("yes");

        }
    }

3 个答案:

答案 0 :(得分:1)

使用player.equals(rock)player.equalsIgnoreCase(rock)比较两个变量的内容

如果我们应用==来比较两个字符串对象,它会比较两个对象的references,所以在你的情况下引用是不同的,这就是为什么它返回false而System.out.println("yes");不是被打印。

使用String.equals()String.equalsIgnoreCase()方法比较字符串的内容。

答案 1 :(得分:0)

您希望player.equals(rock)条件为if

player == rock比较String个对象(基本上是内存中的引用是否指向同一个点),而不是实际存储在String个对象中的值。

答案 2 :(得分:0)

播放器和摇滚是String对象。在Java中,我们没有String作为数据类型,如int,float等。所以要比较两个对象,我们必须使用.equals()[来自Object类]