3

此代码将用户输入的文本 ( userText ) 与关键字 ( endProgram ) 进行比较。当用户输入单词exit时,程序将完成并关闭。

public static void main(String[] args) {

    String endProgram = "exit";
    String userInput;

    java.util.Scanner input = new java.util.Scanner(System.in);

    do {
        userInput = input.nextLine();
    } while ( !(userInput.equals(endProgram)) );

}

有没有更好的方法在 while 括号内编写代码?也就是说,不是使用 !(String.equals(String))其他函数来比较不平等吗?

4

3 回答 3

6

考虑到!只是一个字符,有一个单独的不等式测试函数只会返回等式函数的否定并没有多大意义。
所以不行。

于 2013-08-15T04:29:31.140 回答
2

您可以使用String.compareTo(String)which0在字符串相同时返回。它比String.equals(String)执行词法比较更通用,并且可用于排序(即"a" < "b")。它有一个compareToIgnoreCase()变体,在你的情况下会更好,因为"EXIT"听起来和"exit".

equals()方法实际上是对Objecta 而不是 a执行比较(尽管如果 a不是 的实例,String它将失败)。但是,它的变体将 a作为参数。ObjectStringequalsIgnoreCase()String

于 2013-08-15T04:47:40.123 回答
0

如果您不喜欢“等式方法”(但您刚刚编写的代码是正确的),您可以使用integeras 退出条件。

在这种情况下,我建议使用hasNextInt().

于 2013-08-15T04:45:35.477 回答