Java string.equals函数是否存在不等式?

时间:2013-08-15 04:28:05

标签: java string string-comparison inequality

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

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))还有另一种比较不等式的函数吗?

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:2)

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

equals()方法实际上是对Object进行比较,而不是String(如果Object不是String的实例,它会失败})。但它的equalsIgnoreCase()变体却以String作为参数。

答案 2 :(得分:0)

如果你不喜欢“平等方法”(但你刚写的代码是正确的),你可以使用integer作为退出条件。

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