扫描仪的空字符串

时间:2012-11-27 11:17:45

标签: java

我的申请有问题。我希望应用程序检测到如果用户没有输入字符串的任何值(换句话说,只是在被要求输入内容后按Enter键),应用程序然后询问他/她是否希望退出程序。
我做得对吗?

words = s.nextLine();   
if (words.equals(null)) {

5 个答案:

答案 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("");

应该是正确的