我的申请有问题。我希望应用程序检测到如果用户没有输入字符串的任何值(换句话说,只是在被要求输入内容后按Enter键),应用程序然后询问他/她是否希望退出程序。
我做得对吗?
words = s.nextLine();
if (words.equals(null)) {
答案 0 :(得分:7)
不,你做得不对。
如果用户只是点击返回, nextLine()
将返回空字符串。据我所知,永远不会返回null
。如果已到达输入的结尾,则会抛出NoSuchElementException
(与BufferedReader.readLine()
不同,在这种情况下将返回null。所以你想要:
if (words.equals(""))
或
if (words.length() == 0)
或
if (words.isEmpty())
...如果您想先检测输入结束,请使用hasNextLine()
。
答案 1 :(得分:5)
不,你不是。
如果用户只需按Enter键,您将获得一个空字符串,而不是null
。这可以检查为
if(words.equals(""))
如果有空格,则会失败。在那种情况下
if(words.trim().equals(""))
应该有用。
答案 2 :(得分:4)
null不正确,因为你得到的是一个空字符串:
使用:
words.isEmpty()
要么
words.equals("")
要么
words.length()==0
答案 3 :(得分:0)
这应该有效:
if (words == null || words.length() == 0) {
答案 4 :(得分:0)
返回的字符串不为null,它只是一个空字符串。
words.equals("");
应该是正确的