0

下面的代码不会运行,并且在错误是“线程中的异常”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; 
} 
+2

使用调试器或SOP语句来查看'strAlt'的值是什么。 – 2013-03-10 01:13:20

+0

我同意@ Code-Guru,但我只注意到OP声明它不会编译。 OP,你需要澄清 - 抛出一个异常只发生在运行时。它不会编译,还是在运行时会抛出异常? – jazzbassrob 2013-03-10 01:15:44

+0

好的,澄清一下,你的代码无法编译?或者它抛出一个NumberFormatExceptions?它不能兼得!无论哪种方式,请发布*确切*错误消息,以便我们可以提供帮助。 – 2013-03-10 01:16:38

回答

0

如果您将“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