转换字符串时的数字格式异常
问题描述:
下面的代码不会运行,并且在错误是“线程中的异常”main“java.lang.NumberFormatException:对于输入字符串:”SAN 1905 1808 + 24 + 1512 1209 17 + 10一七零八年至1706年2016-16 211831 211941 192652" “”转换字符串时的数字格式异常
intAlt = Integer.parseInt(strAlt);
我不知道为什么发生这种情况,并会就此事感激任何意见
private int getPos(String strAlt)
{
int intAlt;
int intPos =0;
intAlt = Integer.parseInt(strAlt);
switch (intAlt)
{
case 3:
intPos = 4;
break;
case 6:
intPos = 9;
break;
case 9:
intPos = 17;
break;
case 12:
intPos = 25;
break;
case 18:
intPos = 33;
break;
case 24:
intPos = 41;
break;
case 30:
intPos = 49;
break;
case 34:
intPos = 56;
break;
case 39:
intPos = 63;
break;
}
return intPos;
}
答
如果您将“SAN 1905 1808 + 24 1512 + 17 1209 + 10 1708-06 2016-16 211831 211941 192652”转换为getPos(String strA它会执行:
intAlt = Integer.parseInt(strAlt);
当然它会抛出异常。 See this doc
使用调试器或SOP语句来查看'strAlt'的值是什么。 – 2013-03-10 01:13:20
我同意@ Code-Guru,但我只注意到OP声明它不会编译。 OP,你需要澄清 - 抛出一个异常只发生在运行时。它不会编译,还是在运行时会抛出异常? – jazzbassrob 2013-03-10 01:15:44
好的,澄清一下,你的代码无法编译?或者它抛出一个NumberFormatExceptions?它不能兼得!无论哪种方式,请发布*确切*错误消息,以便我们可以提供帮助。 – 2013-03-10 01:16:38