【问题标题】:java String != null not working reading from bufferedReaderjava String != null 无法从 bufferedReader 读取
【发布时间】:2014-07-17 02:32:26
【问题描述】:

在 android 中,我从 BufferedReader 获取 String 值,从文件读取后它为 null。

intstring = br.readLine();
System.out.println(intstring);
if(intstring != null)
{
      System.out.println("Inside if condition");
      int istring = Integer.parseInt(intstring);
}

我的输出是

 null
 Inside if condition
 NumberFormatException

请帮帮我

【问题讨论】:

  • @ThusithaThilinaDayaratne: .equals() 不需要检查null
  • 真的是null吗?还是只是“空”?
  • 使用 equals() 方法。在此处阅读更多信息:stackoverflow.com/questions/513832/…
  • 检查您的文件或输入...我认为它给出了“null”作为输入...这是有效的字符串和字符串 != null 将适用于这种情况。
  • 可能输出的字符为“null”,它是一个字符串。交叉检查一次。

标签: java string nullpointerexception bufferedreader numberformatexception


【解决方案1】:

您的NumberFormatException 正在发生,因为您的输入不是数字。也许它是一个空白行,或者它有一些非数字字符。事实上,您的输出表明它实际上是单词"null"

你有一些选择。

  • 您可以在解析字符串之前检查字符串是否包含数字且不包含其他字符,例如使用正则表达式和if (intString.matches("\\d+")) 之类的条件。
  • 您可以抓住NumberFormatException,并在它发生时做一些特别的事情。
  • 如果您知道输入中不会有任何非数字字符,您可以检查您的字符串是否为空白。对于这个选项,你可以写if (!intString.equals("")))

【讨论】:

  • 在代码中打印为 null ,如果你看到他提供的输出,所以没有机会得到非数字字符等。
  • 所以,很可能它实际上是 "null" 这个词。四个非数字字符。
  • 他正在阅读的输入可能包含“null”字符。
  • @developer - 房间里有回声吗?他只是这么说:-)
  • bufferedReader 将 String 的值存储为“null”,如果 br.readLine() 为空,则不为 null 所以尝试检查 (!Stringval.equalisIgnoreCase("null")) 而不是 (Stringval != null) 或 (Stringval.equalsIgnoreCase(null))
猜你喜欢
  • 2014-09-26
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
相关资源
最近更新 更多