2017-06-17 48 views
-2
if(Integer.parseInt(n)==(m[i].age)) 
      { 
       m[i].showdetails(); 
      } 

我得到的数字格式例外,如果条件 在此代码n是一个字符串和M [I]。年龄是一个整数,我想他们比较获得NumberFormatException的

谢谢:)任何帮助将不胜感激。

+1

好整,你现在知道了'N'不是一个有效的数字字符串。您的解决方案是解决它,以便它。 –

+0

'n'不是一个数字。您是否在声明前尝试打印它以检查其价值?提示:你是否100%确定* n不包含空格?如果是这样,你需要在解析之前删除它们。 – BackSlash

+0

@BackSlash:如果'm [i] .age'不是数字,会抛出同样的异常吗? –

回答

-1

不要试图将字符串转换为整数,而不是转换成字符串

if(n.compareTo(Integer.toString(m[i].age))==0) 
      { 
       m[i].showdetails(); 
      } 
+0

谢谢你的回答。它的工作:) –

+1

这是一种方法 - 但请注意,通过这种方式,只会因为任何不是给定整数的有效表示的'n'而导致'false' - 您可能会错过错误。此外,我宁愿'n.equals(Integer.toString(m [i] .age))' – Hulk

+0

@SurajChauhan这是一种方法,但在我看来这是错误的。总是解决你的错误,**从不**像这样的黑客来避免解决你的错误。 – BackSlash