An exception occurred processing

HTTP Status 500 - An exception occurred processing JSP page /index.jsp at line 63
type Exception report

message An exception occurred processing JSP page /index.jsp at line 63

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 /index.jsp at line 63

60: {
61: int temp = (int)((long)(number / (long)Math.pow(10, i)) % 10);//鑾峰彇绗琲浣嶇殑鏁板瓧
62: if (i % 4 == 0) result = unitStr[(int)i / 4] + result;//妫�煡鏄惁闇�鍔犱笂涓囨垨浜跨瓑
63: result = cStr[temp] + cStr[10 + i % 4] + result;
64: }
65: result = result.replaceAll("(闆禰鍗佺櫨鍗僝)+", "闆�);
66: result = result.replaceAll("闆秢2,}", "闆�);

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:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

java.lang.ArrayIndexOutOfBoundsException: -1
org.apache.jsp.index_jsp.GetChineseString(index_jsp.java:47)
org.apache.jsp.index_jsp._jspService(index_jsp.java:309)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
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:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

代码

<%!
public static String select(String sel,String qtype){

if(sel.equals(qtype)){
    return "selected=\"selected\"";
    }
    return "";
}

public static String GetChineseString(long number)
{
    String[] cStr =new String[] {"零","一","二","三","四","五","六","七","八","九","","十","百","千"};
    String[] unitStr = new String[] { "", "万", "亿", "万", "兆" };
    String result = ""; 
    for (int i = 0; i < (number+"").length(); i++)
    {
        int temp = (int)((long)(number / (long)Math.pow(10, i)) % 10);//获取第i位的数字
        if (i % 4 == 0) result = unitStr[(int)i / 4] + result;//检查是否需要加上万或亿等
        result = cStr[temp] + cStr[10 + i % 4] + result;
    }
    result = result.replaceAll("(零[十百千])+", "零");
    result = result.replaceAll("零{2,}", "零");
    result = result.replaceAll("零([万亿兆])", "$1");
    if(result.length()>1&&result.endsWith("零")) result = result.substring(0,result.length()-1);
    return result;
}
%>