我正在尝试使用do-while循环在Java中编写一小段代码,询问用户的名字。如果它不是代码所寻找的名称,那么它只是重复自己。例如,
Scanner scan = new Scanner();
do {
System.out.println("whats your name?");
String name = scan.nextLine();
} while ("jack".equals(name)); ////// <<<<
这是我用<<<<
标记的,我不知道该怎么做。我需要类似!=
的内容,但这不适用于字符串。
那么我可以把它放在这里?
答案 0 :(得分:8)
感叹号!
代表否定或赞美。 while(!"jack".equals(name)){ }
答案 1 :(得分:5)
布尔不!运营商是最干净的方式。当然你也可以说
if ("jack".equals(name) == false) { ... }
或者你可以说
if ("jack".equals(name) != true) { ... }
请注意在对象.equals()
上调用null
或者您将获得NullPointerException
。在那种情况下,像......
if !((myVar == yourVar) || ((yourVar != null) && yourVar.equals(myVar))) { ... }
...会防范NullPointerException
并且如果它们不相等则为真,包括它们都不是null
。相当大脑扭转了吗?如果丑陋,我认为逻辑是合理的。这就是我在许多项目中编写包含此逻辑的StringUtil
类的原因!
这就是为什么在字符串文字而不是你正在测试的字符串上调用.equals()
方法更好的约定。
答案 2 :(得分:3)
放“!”来自杰克。如果我正确理解了这个问题,这将解决。