39: }
40: 
41: String t = "1.3.4".substring(0, 4).replace('.', (char)0);
42: out.println(Integer.valueOf(t));
43: // Make sure we are running at least Jdk 1.5.1
java.lang.NumberFormatException: For input string: "13"   //主意这里
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Integer.parseInt(Integer.java:458)
java.lang.Integer.valueOf(Integer.java:554)
org.apache.jsp.install_jsp._jspService(install_jsp.java:71)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)难道说char(0)也是占据空间的? 从而导致转换失败?  各位高手 见教~~

解决方案 »

  1.   

    char 为 0 其是一个字符,虽然眼睛看不到这个字符的存在,但是实际上是存在的,
    而且 char 0 也不是 0~9 之间的数字,因此会抛出该异常。解决方法:采用字符串进行替换 replace(".", "");
      

  2.   

    转换后t是为“1 3 ”;1和3的后面都是有空格的,当然是转换不了。
    我不知道你最终想转换成怎样的结果,
    如果是想得到13的结果可以用String t = "1.3.4".substring(0, 4).replace(".", "");
    如果是想得到1030的结果可以用String t = "1.3.4".substring(0, 4).replace(".", "0")。