public class Test
   
   {  
      public static void main(String args[])
      {
      
       String s=new String("javaok!");
       String s1;
       s1=s.substring(1,4);
      
       System.out.println(s1);
      }
   
   
   }为啥结果是ava,不是java呢?

解决方案 »

  1.   

     s1=s.substring(0,4);这样才是第一个字符序号是0 不是1 
      

  2.   

    substring(1,4);
    是指的索引,是从0开始的,也就是说将String s转为char[]数组后取得的
      

  3.   

    文档上说的看看public String substring(int beginIndex,
                            int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,一直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。 
    示例:  "hamburger".substring(4, 8) returns "urge"
     "smiles".substring(1, 5) returns "mile"
     
    参数:
    beginIndex - 开始处的索引(包括)。
    endIndex - 结束处的索引(不包括)。 
      

  4.   

    substring(1,4)
    取到的是index 1,2,3 这3个字符
    java字符串是从0开始计算的....
    所以,s1=s.substring(0,4);
    才是"java"(取的是0,1,2,3四的字符)