黑马程序员技术交流社区

标题: 关于substring();的问题。 [打印本页]

作者: TTc    时间: 2014-4-13 18:09
标题: 关于substring();的问题。
本帖最后由 TTc 于 2014-4-13 18:32 编辑

  1. class Geindex{
  2.         int index =0;
  3.         int end = 0;
  4.         int z= 0;
  5.         int cont= 0;
  6.         Geindex(){};

  7.         
  8.         public static void sop(Object object){
  9.                
  10.                 System.out.println(object);
  11.                
  12.         }
  13.         public static void mysort(String st1,String st2){
  14.                
  15.                 for(int x=0;x<st2.length();x++){
  16.                         
  17.                         for(int y=0,z=st2.<font color="#ff0000">length()-x-1</font>;z<st2.length();y++,z++){            // 在我的理解中,数组的长度比数组大1,所以我想在给定获取子串的字符串的                                                                                                      //长度一定要比length()小1,
  18.                                 String tmp =st2.substring(y,z);                                               
  19.                                 sop(tmp+tmp.length());                                                      
复制代码
  1.                         }
  2.                        
  3.                 }
  4.                 System.out.println("华丽的分割线---");
  5.         }


  6.        
  7.        
  8.        
  9. }
  10. public  class GetequString {

  11.         /**
  12.          * @param args
  13.          */
  14.         public static void main(String[] args) {
  15.                 // TODO Auto-generated method stub

  16.                     Geindex gi  =new Geindex();
  17.                  // gi.mysort("nihaowoxiangsinile","dsxiangffd");
  18.                   
  19.                    String ne = "abc";
  20.                    gi.sop(ne.substring(0,3));
  21.                    gi.sop(ne.substring(0,1));
  22.                                      
  23.                   
  24.         }

  25. }
复制代码
      第一次调用时我将z的值设为字符串的长度时获得了正确的结果,但是因为数组的长度比角标大一,于是我将z的值赋予了长度减1,但是发现得到的结果出现了 问题。于是当我查看文档发现当结束索引字符串的长度大于字符串长度时会得到抛出异常,原来结束索引是可以等于字符串长度的,于是我就用了一个简单的字符串直接赋值开始索引和结束索引看结果,我发现当结束索引的值为长度时输出的结果确实是完整的字符串,那开始索引为0,结束索引为1时取到子串是a吗?结果确实是a,那这里的开始索引‘0’这个位置从哪跑出来的,字符串中的a不是‘0’的位置吗?
  


作者: yooozooo    时间: 2014-4-13 23:40
substring截取的子字符串 含头不含尾。子字符串的长度为 endIndex-beginIndex。
例如:“abc".substring(0,1);  截取后得到字符串“a”,其索引是0,长度为1-0





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2