RANDY

          Nothing is difficulty if you put your heat into it!!!
          posts - 3, comments - 1, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            一同學(xué)問(wèn)了一個(gè)字符串反轉(zhuǎn)的問(wèn)題!開(kāi)始覺(jué)得很簡(jiǎn)單的!
            一種思路就是獲得字符串在將它轉(zhuǎn)換成為字符串?dāng)?shù)組在用循環(huán)將他輸出就可以了!
           我作了兩個(gè)頁(yè)面,一個(gè)用于輸入,一個(gè)用于處理;
            我最初是這么寫(xiě)的:
             我正序輸出時(shí)是正確的即
          <%
          ? for(int i=0;i<=s.lenth.i++)
          %>
          第一次嘗試:
           ? <%
          ? String fanzhuan=request.getParameter("fanxu");
          ????? if((fanzhuan.length()==0)&&(fanzhuan=="")){
          ???? out.print("TextField can't be null");
          ???????? }
          ????? else{
          ??char s[]=fanzhuan.toCharArray();
          ??String fanzhuan2="";
          ??int j=s.length;
          ??for(int i=j;i>0;i--)//老出越界的錯(cuò)誤暈!
          ??{
          ???fanzhuan2+=s[i];
          ??}
          ??? out.print(fanzhuan2);
          ??}
          %>

          出錯(cuò)信息:
          java.lang.ArrayIndexOutOfBoundsException: 3
          	org.apache.jsp.fanxu2_jsp._jspService(fanxu2_jsp.java:58)
          	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
          	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
          	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
          	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
          	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
          	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
          	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
          第二次嘗試:
          ?
          ?for(int i=j;i>0;--i)//老出越界的錯(cuò)誤暈!
          ??{

          ???fanzhuan2+=s[i];
          ??}
          出錯(cuò)信息:
          java.lang.ArrayIndexOutOfBoundsException: 3
          	org.apache.jsp.fanxu2_jsp._jspService(fanxu2_jsp.java:58)
          	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
          	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
          	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
          	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
          	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
          	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
          	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
          第四次嘗試:
          ?for(int i=j;i>-1;--i)//老出越界的錯(cuò)誤暈!
          ??{

          ???fanzhuan2+=s[i];
          ??}
          出錯(cuò)信息:
          java.lang.ArrayIndexOutOfBoundsException: 3
          	org.apache.jsp.fanxu2_jsp._jspService(fanxu2_jsp.java:58)
          	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
          	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
          	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
          	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
          	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
          	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
          	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
          第五次嘗試:
          ?for(int i=j;i>1;--i)//老出越界的錯(cuò)誤暈!
          ??{

          ???fanzhuan2+=s[i];
          ??}
          java.lang.ArrayIndexOutOfBoundsException: 3 org.apache.jsp.fanxu2_jsp._jspService(fanxu2_jsp.java:58) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 第六次嘗試
             ?for(int i=j;i>1;)//老出越界的錯(cuò)誤暈!
          ??{
          ???i=i-1;
          ???fanzhuan2+=s[i];
          ??}
          這次終于成功了
          第七次測(cè)試

          ?? while(j>0)
          ?? {
          ???? j--;
          ???? fanzhuan2+=s[j];
          ??? }???
          ??? out.print(fanzhuan2);
          ???????? }
          成功!
          第八次測(cè)試
          do {???
          ??? j--;???
          ???? fanzhuan2+=s[j];
          ??????? }??
          ??????? while(j>0);???
          ???????? out.print(fanzhuan2);????
          成功!

          第九次測(cè)試:
          ???? do {???
          ?
          ???? fanzhuan2+=s[j];
          ??????????? j--;??
          ??????? }??
          ??????? while(j>0);??
          出錯(cuò)同上!



           由上面的嘗試可以發(fā)現(xiàn)問(wèn)題是出在i--
          是在那里運(yùn)算的要是在
          fanzhuan2+=s[j]; 之前則正確!
          在之后則出現(xiàn)越界的錯(cuò)誤!

            很簡(jiǎn)單的問(wèn)題就是因?yàn)楂@得length是出組的長(zhǎng)度而不是最后一個(gè)元素的位置!應(yīng)減一!
          可見(jiàn)還是因?yàn)閷?duì)for語(yǔ)句和數(shù)組概念的理解不深刻!


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 延安市| 林芝县| 蒙城县| 普宁市| 楚雄市| 洞头县| 云安县| 博湖县| 象山县| 临颍县| 格尔木市| 弋阳县| 嘉鱼县| 汉阴县| 儋州市| 资中县| 耒阳市| 鹤峰县| 扶余县| 峨山| 伊宁市| 渝北区| 古田县| 环江| 枝江市| 梁山县| 舟曲县| 洛阳市| 芮城县| 阳西县| 芜湖县| 临武县| 平安县| 保亭| 九台市| 山丹县| 大荔县| 新营市| 乾安县| 崇文区| 平凉市|