java - 使用 nextLine() 后无法创建测试条件

标签 java

Possible Duplicate:
Java String.equals versus ==

我在使用 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");
    }
}

最佳答案

您应该使用等于。 == 为您提供引用相等性,equals 为您提供值相等性。

if("yes".equals(repeat)){ 

而不是

if(repeat == "yes"){

我建议您获取 eclipse/net beans 并开始调试,否则简单的搜索就会得到答案

Java Debugging with Eclipse - Tutorial

关于java - 使用 nextLine() 后无法创建测试条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13167088/

相关文章:

用于大量文件的 Java zip 库

java - 我应该把这个配置设置放在哪里?

java - 在 Java 或 Groovy 中,如何找到 byte[] 的文件类型?

java - 达到 max_size 时 c3p0 不释放连接

java - 如何在java中嵌入tomcat

java - 移动设备上连接的适当超时是多少?

java - 无法获得有效的数组输出

maven - 为每个 maven 子模块指定 jdk - 如果使用错误则构建失败

java - Servlet 和 AJAX 通信

java - 替换字符并仅保留其中一个字符