calss test
{
   public static void main(String[] args)
   {
    String str="中国人";
    System.out.println(str.substring(0,0));}
-----------------------------------
谁来解释一下啊为什么输出结果不是“中”,而是什么都没有。 
 

解决方案 »

  1.   

    substring两个参数,都是只下标(0开始,第一个算0,第二个算1...)
    但是,前面一个开始位置是包含,后面一个开始位置是不包含你需要(0,1)
      

  2.   

    System.out.println(str.substring(0,0)); 从0开始,获取0个字符,当然是什么也没了
      

  3.   

    substring(0,0)起始从0开始。
    结束至0这不就没动吗。
      

  4.   

    System.out.println(str.substring(0,1));
    这样才会输出“中”
    System.out.println(str.substring(0,0));这样是找不到的,第一个参数代表字符串下标。
      

  5.   

    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 - 结束处的索引(不包括)。 
    返回:
    指定的子字符串。 
    抛出: 
    IndexOutOfBoundsException - 如果 beginIndex 为负,或 endIndex 大于此 String 对象的长度,或 beginIndex 大于 endIndex。
    楼主请细读API
      

  6.   

    str.substring(0,0),这样截取也太给力了吧???
      

  7.   

      String str="中国人";
      System.out.println(str.substring(0,0));//无
      System.out.println(str.substring(0,1));//显示第一个从0开始
      System.out.println(str.substring(0,2));//显示第2个从0开始
      System.out.println(str.substring(0,3));//显示第3个从0开始
      System.out.println(str.substring(1,3));//显示第3个从0开始
      System.out.println(str.substring(2,3));//显示第2和3个从0开始
      System.out.println(str.substring(3,3));//显示第3个从0开始