This question already has answers here:
How do I compare strings in Java?
(23个答案)
2年前关闭。
我正在制作剪刀石头布程序。我希望程序的用户输入石头,纸张或剪刀(因此导入了扫描仪),并且我希望计算机选择一个随机数(我将导入一个java.util.Random),该数字对应于另一块石头,纸张。或剪刀。
因此,我正在尝试使程序RECOGNIZE成为一个有意义的词。也就是说,如果用户在扫描仪中输入“岩石”,则计算机将执行一些输出。在下面的代码中,如果用户输入“ rock”,我试图使计算机输出“ yes”。为此,我将一个名为“ player”的变量设置为输入的文本,并将一个String rock设置为短语“ rock”。然后我说,如果player = rock(=“ rock”),那么我们将得到“是”。
该程序没有错误。但是,当我在扫描仪中输入“ rock”时,该程序什么也没做。我做错了什么,我该如何纠正?
(23个答案)
2年前关闭。
我正在制作剪刀石头布程序。我希望程序的用户输入石头,纸张或剪刀(因此导入了扫描仪),并且我希望计算机选择一个随机数(我将导入一个java.util.Random),该数字对应于另一块石头,纸张。或剪刀。
因此,我正在尝试使程序RECOGNIZE成为一个有意义的词。也就是说,如果用户在扫描仪中输入“岩石”,则计算机将执行一些输出。在下面的代码中,如果用户输入“ rock”,我试图使计算机输出“ yes”。为此,我将一个名为“ player”的变量设置为输入的文本,并将一个String rock设置为短语“ rock”。然后我说,如果player = rock(=“ 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");
}
}
最佳答案
使用player.equals(rock)
或player.equalsIgnoreCase(rock)
比较两个变量的内容
如果我们将==
用于比较两个字符串对象,它将比较两个对象的references
,因此在您的情况下,引用是不同的,这就是为什么它返回false且未打印System.out.println("yes");
的原因。
使用String.equals()
或String.equalsIgnoreCase()
方法比较字符串的内容。
09-25 20:16