gpt4 book ai didi

java - 从用户输入中读取和检查字符串

转载 作者:搜寻专家 更新时间:2023-11-01 01:11:08 25 4
gpt4 key购买 nike

我有这个代码:

import java.util.Scanner;

public class Example {
public static void main(String[] args) {

Scanner input = new Scanner(System.in);
String answer = input.nextLine();

if(answer == "yes"){
System.out.println("Yea I programmed this right!");
}else{
System.out.println("Awww :(");
}
}
}

但是当我运行它并输入yes时,它应该说

“是的,我编程正确!”

但是它说

哇哦:(

最佳答案

您比较的字符串不正确。您必须使用 equals()方法,像这样:

if (answer.equals("yes"))

当您使用 Java 编程时,运算符 ==通常用于比较原始数据类型( intdouble 等)。如果你使用 ==为了比较两种对象类型(如字符串),您要比较它们的身份,即检查它们是否引用内存中的同一对象。在您的情况下,您需要比较它们是否相等:它们是否具有完全相同的值(在本例中为一串字符),即使它们是两个不同的对象 - 并且对于你必须使用 equals()方法。

编辑:

更好的是,为了防止 NullPointerException , 翻转比较顺序并首先写入要比较的字符串被认为是一种很好的做法,如下所示:

if ("yes".equals(answer))

解释很简单:如果由于某种原因answernull ,上面的比较将评估为 false (意思是:answer 不是 "yes" ),而代码的第一个版本会导致 NullPointerException当试图调用 equals() null 上的方法值(value)。

关于java - 从用户输入中读取和检查字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661559/

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