此代码将用户输入的文字( 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))
还有另一种比较不等式的函数吗?
答案 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()
。