请问各位大侠,java字符串转化成整数为什么会出现如下的错误?谢谢

type Exception report

message An exception occurred processing JSP page /admin/categoryadd.jsp at line 15

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/categoryadd.jsp at line 15

12: out.println(request.getParameter("pid"));
13: int pid = 0;
14: if(null!=strpid){
15: pid = Integer.parseInt(strpid);
16:

17: }
18:

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.lang.NumberFormatException: For input string: "10/"
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
java.lang.Integer.parseInt(Integer.java:492)
java.lang.Integer.parseInt(Integer.java:527)
org.apache.jsp.admin.categoryadd_jsp._jspService(categoryadd_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

先看strpid是什么字符串,是不是合法数字字符串

从你的stracktrace看,你要转换的那个字符串是"10/",多了个"/",所以明显会出错。

10后面怎么会有一个除号?是解析的问题还是输出错误的问题。

String strpid=(String)request.getParameter("pid")
你是这么写的么,request.getParameter取得的数据都要强转为String

java.lang.NumberFormatException: For input string: "10/"
很明显是你传入的String不对,多了一个除号,检查下。

出现了非数字的字符,你可以写个正则判断下是否是纯数据的字符串

不是合法的数字呀,后面带了个/

字符串必须是合法的整数字符串,不能有其他的字符

10后面多了个 /。你的业务如果有很多都是有这个多个/的话或者个别的有这个/的话。在转换前用strpid = strpid.replaceAll("/",""); 将/替换成空就行了。

java.lang.NumberFormatException: For input string: "10/"