java - 扫描正在输入的字符串

标签 java

这段代码永远不会打印我是赢了,输了,还是平局,我无法弄清楚。我知道 hischoice 和 Whichpick 都设置正确,但 if 似乎不起作用。我是否错误地使用了字符串或者我对它们进行了错误的比较?我是 Java 新手,所以我不太确定我做错了什么。

import java.util.Scanner;
import java.util.Random;
public class rps {

public static void main(String[] args) {
    int oppchoice;
    String hischoice = "";
    String whichpick;
    String rock = "rock";
    String paper = "paper";
    String scissors = "scissors";
    Scanner mS = new Scanner(System.in);
    Random mR = new Random();

    System.out.print("Type your choice (rock/paper/scissors): ");
    whichpick = mS.nextLine();

    oppchoice = mR.nextInt(3) + 1;
    if (oppchoice == 1) {
        hischoice = rock;
    }
    if (oppchoice == 2) {
        hischoice = paper;
    }
    if (oppchoice == 3) {
        hischoice = scissors;
    }
    System.out.println(hischoice);

    if ((hischoice == rock) && (whichpick == paper)) {
        System.out.println("You win! :)");
    }
    if ((hischoice == paper) && (whichpick == scissors)) {
        System.out.println("You win! :)");
    }
    if ((hischoice == scissors) && (whichpick == rock)) {
        System.out.println("You win! :)");
    }
    if ((hischoice == rock) && (whichpick == scissors)) {
        System.out.println("You lose! :(");
    }
    if ((hischoice == paper) && (whichpick == rock)) {
        System.out.println("You lose! :(");
    }
    if ((hischoice == scissors) && (whichpick == paper)) {
        System.out.println("You lose! :(");
    }
    if ((hischoice == rock) && (whichpick == rock)) {
        System.out.println("It's a tie! :|");
    }
    if ((hischoice == scissors) && (whichpick == scissors)) {
        System.out.println("It's a tie! :|");
    }
    if ((hischoice == paper) && (whichpick == paper)) {
        System.out.println("It's a tie! :|");
    }
}   

}

最佳答案

== 运算符检查两个对象是否完全相同。两个字符串是不同的对象,但具有相同的值(其中具有完全相同的字符)。因此,可以使用 .equals() 方法来比较字符串是否相等,或者使用 .compareTo() 方法来测试不相等的比较。在这种情况下,使用 .equals() 会更容易。

所以这是应该如何完成

if ((hischoice.equals(rock)) && (whichpick.equals(rock))) {
        System.out.println("It's a tie! :|");
    }

关于java - 扫描正在输入的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11787570/

相关文章:

java.lang.StackOverflowError 递归目录

java - 如何使用 Necessitas(qt 端口)构建我的 HelloWorld Android 应用程序?

java - POJO 对象的 JAX-RS 通用工厂

java - 从 JAR 依赖项运行测试

java - 如何在 REST 服务中获取不同 mime 类型的 Map 参数?

java - 在流Java中拆分字符串

java - Eclipse 中缺少项目依赖项

java - Files.move 和 Files.copy 抛出 java.nio.file.FileAlreadyExistsException

java - 如何制作带有复选框列表(如 setMultiChoiceItems)的自定义对话框,接收和发送数据?

java.lang.ClassNotFoundException : javax. el.ELContext