String str;
str = request.getParameter("quantity");
try{
int i = Integer.parseInt(str);
out.println(i);
}
catch(Exception ee){
out.println(ee);
}
每次输出都是NumberFormatException ......我无法将字符串解析为整数
答案 0 :(得分:1)
您应检查您的号码是否太大,无法容纳int
或@Noob UnChained建议,请检查内容。
如果您不总是知道值,可以使用此方法尝试解析:
public static int parseWithDefault(String number, int defaultVal) {
try {
return Integer.parseInt(number);
} catch (NumberFormatException e) {
return defaultVal;
}
}
答案 1 :(得分: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);
}
答案 2 :(得分:0)
检查str的值。它可以是不能像“st”
那样转换为int的东西答案 3 :(得分:0)
为什么不调试代码并查看str的值是什么,并检查NumberFormatException堆栈跟踪,因为它将告诉它尝试解析的值。
答案 4 :(得分:0)
要做的第一件事应该是确保字符串可以完全转换为数字。
"48" --> a number
"--48" --> not a number
如果需要,您应该解析字符串或使用正则表达式删除非数字字符。为了更加安全,您可以在整数中放入一个适合默认用例的默认数字,然后调用TryParse
。这样,无论发生什么,它都不会使您的应用程序崩溃,但您仍然可以记录错误。