子串MADNESS简单但不起作用?

时间:2014-11-23 03:33:05

标签: java

 public class Tester{

    public static void main(String[] args) {
        String a = "any";
        System.out.println (a.substring (0,2));
    }
}

为什么输出“an”而不是“any”?

2 个答案:

答案 0 :(得分:4)

这是因为substring的第二个参数是独占的,直到2,不包括。

substring方法的javadocs解释了这一点。

以下是指标 - 记住它们从0开始。

  

任何
  | | |
  012

所以[0,2]给出0和1 - “an”

如果您想要包含“y”,只需添加一个,这样您就可以"any".substring(0,3);

答案 1 :(得分:1)

substring的结束索引(即第二个参数)是独占的。因此,索引2(y)处的字符将不再包括在内。