This question already has answers here:
How do I compare strings in Java?
                                
                                    (23个答案)
                                
                        
                6年前关闭。
            
        

这是我的代码。我是超级菜鸟,所以不要用力向我开火哈哈。我尝试了几种不同的方法,并查看了许多有关如何关闭循环的帖子和站点。我认为问题在于(i ==(“ quit”))在用户键入quit时无法识别。通过让我输入一个新单词并告诉我它是错误的单词,它无限循环。

这是代码。

package monty;
import java.io.*;
import java.io.Console;
import java.util.Arrays;
import java.io.IOException;
import java.util.Scanner;

public class firsttry2 {

public static void main(String[] args) {

    System.out.print("Enter the word 'quit' to end this program. Otherwise, it will run indefinitely.");

    int x=0;
    Scanner in=new Scanner(System.in);

     while (x<1) {


         String i;

        i=in.next();

        if (i==("quit")) {x++; in.close(); break;}
        else {System.out.print("You did not enter the word 'quit'. Please try again .");
        }
    }

}


}

谢谢你们给我的任何帮助!我也用while(true)进行了尝试,但也无法使其正常工作。同样的结果,当我键入“退出”时无法识别。

最佳答案

最佳替代选择是i.equals("quit")而不是i==("quit")
原因是==equals()不相同。

==检查身份。那就是两个对象是否是相同的对象并指向内存中的相同地址。

默认情况下,.equals()做同样的事情,但是可以被覆盖以执行不同的相等比较。 (即,如果字符串具有相同顺序的相同字符,则视为相等)

如果您希望用户也可以写quit或Quit,那么也可以使用equals()代替equalsIgnoreCase()

关于java - 当输入为“quit”(退出循环/程序)时,Java无法识别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19107779/

10-11 20:43