gpt4 book ai didi

java - 使用 "=="时字符串比较失败?

转载 作者:行者123 更新时间:2023-12-01 08:04:28 28 4
gpt4 key购买 nike

我是一个极端的编码菜鸟,而且我才刚刚开始。我设计了一个石头剪刀布游戏,但不明白为什么它不起作用。由于某种原因,用户输入在 if 语句中不起作用。请看一下。

    package com.youtube.njillatactics;

import javax.swing.JOptionPane;

public class RPS {
public static void main(String args[]){
//start message
JOptionPane.showMessageDialog(null, "Welcome to Nick's rock paper scissors game!");
//get user input and convert to lower case
String userInput = JOptionPane.showInputDialog("Choose rock, paper, or scissors.").toLowerCase();
//generate random computer input
double computerInput = Math.random();
//match user input to converted computer input
JOptionPane.showMessageDialog(null, match(userInput, convert(computerInput)));
}
//convert random computer input into choice
public static String convert(double x){
if(x < 0.33){
return "rock";
}else if(x < 0.66){
return "paper";
}else
return "scissors";
}
//check to see who wins
public static String match(String x,String y){
if(x == y){
return "Tie!";
}else
if(x == "rock"){
if(y == "paper"){
return "Computer wins!";
}else
return "User wins!";
}
if(x == "paper"){
if(y == "scissors"){
return "Computer wins!";
}else
return "User wins!";
}
if(x == "scissors"){
if(y == "rock"){
return "Computer wins!";
}else
return "User wins!";
}else
return x + ", " + y;
}
}

最佳答案

当您应该将字符串与 .equals(s) 进行比较时,您正在将字符串与 == 进行比较

而不是,例如,

if(y == "rock")  {

更改为

if(y.equals("rock"))

(您还应该通过测试或 try catch 来确保 y 不为 null。)

如果 == 两侧都有相同的字符串对象,则将字符串与 == 进行比较的结果为 true。

使用equals(s)比较字符串会比较它们的值,无论它们是否是同一个对象...显然,如果它们碰巧是同一个对象,它将始终评估为 true

关于java - 使用 "=="时字符串比较失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22702418/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com