0
    String str;
    str = request.getParameter("quantity");


try{
    int i = Integer.parseInt(str);
    out.println(i);
}
catch(Exception ee){
      out.println(ee);
}

每次输出都是 NumberFormatException ......我无法将字符串解析为整数

4

5 回答 5

1

您应该检查您的号码是否太大而无法放入int或按照@Noob UnChained 的建议,检查内容。

如果您并不总是知道值,您可以使用此方法尝试解析:

    public static int parseWithDefault(String number, int defaultVal) {
         try {
              return Integer.parseInt(number);
         } catch (NumberFormatException e) {
              return defaultVal;
         }
    }
于 2013-05-16T04:41:04.653 回答
0

我之前也遇到过类似的问题。尝试这个。我假设这是c#。哦,对不起,我刚刚注意到它说的是jsp。我相信这个概念是一样的,但我之前没有尝试过jsp。

String str;
str = request.getParameter("quantity");
int newValue;


try{
    int.TryParse(str , out newValue);
    out.println(newValue);
}
catch(Exception ee){
    out.println(ee);
}
于 2013-05-16T04:38:22.937 回答
0

检查str的值。它可能是不能转换为int的东西,比如“st”

于 2013-05-16T04:42:22.420 回答
0

你为什么不调试你的代码,看看 str 的值是什么,并检查 NumberFormatException 堆栈跟踪,因为它会告诉它试图解析什么值。

于 2013-05-16T04:44:29.467 回答
0

首先要做的应该是确保字符串可以完全转换为数字。

"48" --> a number
"--48" --> not a number

如果需要,您应该解析字符串或使用正则表达式来删除非数字字符。为了额外的安全性,您可以在整数中放置一个适合默认用例的默认数字,然后调用 a TryParse. 这样,无论发生什么,它都不会使您的应用程序崩溃,但您仍然可以记录错误。

于 2013-05-16T04:51:58.960 回答