Java 使用nextLine()后无法创建测试条件
可能重复:Java 使用nextLine()后无法创建测试条件,java,Java,可能重复: 我一直很难使用nextLine()获取字符串,然后将其用作测试条件(在if语句或while循环中)。查看println(),似乎字符串已正确分配给变量“repeat”,但由于某种原因,测试条件失败。我的头撞在墙上,额头流血。请帮忙 import java.util.Scanner; public class potpie { public static void main(String args[]){ Scanner input = new Scan
我一直很难使用nextLine()获取字符串,然后将其用作测试条件(在if语句或while循环中)。查看println(),似乎字符串已正确分配给变量“repeat”,但由于某种原因,测试条件失败。我的头撞在墙上,额头流血。请帮忙
import java.util.Scanner;
public class potpie {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
String repeat = "yes";
System.out.println("Type in yes");
repeat = input.nextLine();
System.out.println("If repeat is now yes, print yes: " +repeat);
if(repeat == "yes"){
System.out.println("It worked");
} else
System.out.println("it failed");
}
}
应该是
if(repeat.equals("yes"){
(或)
每天我们都会多次看到这个问题,简单的搜索可以为您提供足够的信息
=
equals用于原语比较(参考等式)equals()
用于字符串(或)对象比较(对象内容相等)
应该是
if(repeat.equals("yes"){
(或)
每天我们都会多次看到这个问题,简单的搜索可以为您提供足够的信息
=
equals用于原语比较(参考等式)equals()
用于字符串(或)对象比较(对象内容相等)。您应该使用equals=
为您提供参考等式,equals
为您提供值等式
if("yes".equals(repeat)){
而不是
if(repeat == "yes"){
我建议您获取eclipse/netbean并开始调试,否则简单的搜索就会得到答案
您应该使用equals
=
为您提供参考等式,equals
为您提供值等式
if("yes".equals(repeat)){
而不是
if(repeat == "yes"){
我建议您获取eclipse/netbean并开始调试,否则简单的搜索就会得到答案
有时==应该用于对象,但它实际比较的是a和b是否确实是同一个对象(在内存中有相同的地址)。正如其他人所说,在这种情况下,您是在比较内容,因此您使用.equals()有时==应该用于对象,但它实际比较的是a和b是否是字面上相同的对象(在内存中具有相同的地址)。正如其他人所说,您在这种情况下比较内容,因此使用.equals()这是Java中最常见的问题之一。请做一些研究,因为它已经被回答了很多次。使用if(repeat.equalsIgnoreCase(“yes”))代替这是Java中最常见的问题之一。请做一些研究,因为它已经被回答了很多次。使用if(repeat.equalsIgnoreCase(“yes”)代替yes,但有时很难知道要搜索什么。我有点不同意。在这种情况下,谷歌到底需要什么?实际上,我认为Java应该修复这个bug。是的,它会破坏一些写得不好的软件。可能是字符串相等吗?OP知道测试条件不合格。@JohnB我同意这种看法。另一方面,学习使用调试器是一项基本技能。在我看来,向某人提供调试技能方面的建议比告诉他们进行谷歌搜索(至少在这个特定的例子中)要好。当然。然而,如果您是该语言的新手,您可能不理解为什么
==
失败,并且可能不考虑引用相等,这取决于您来自哪里。Java中==
运算符应用于字符串时的行为在逻辑上是完全一致的,但老实说,不是很有用。是的,但有时很难知道要搜索什么。我有点不同意。在这种情况下,谷歌到底需要什么?实际上,我认为Java应该修复这个bug。是的,它会破坏一些写得不好的软件。可能是字符串相等吗?OP知道测试条件不合格。@JohnB我同意这种看法。另一方面,学习使用调试器是一项基本技能。在我看来,向某人提供调试技能方面的建议比告诉他们进行谷歌搜索(至少在这个特定的例子中)要好。当然。然而,如果您是该语言的新手,您可能不理解为什么==
失败,并且可能不考虑引用相等,这取决于您来自哪里。Java中==
操作符应用于字符串时的行为在逻辑上是完全一致的,但老实说,不是很有用。