子串索引范围

Upv*_*ote 70 java string substring

码:

public class Test {
    public static void main(String[] args) {
        String str = "University";
        System.out.println(str.substring(4, 7));
    }   
}
Run Code Online (Sandbox Code Playgroud)

输出: ers

我真的不明白子串方法是如何工作的.索引是从0开始的吗?如果我从0开始,e是在索引4但char i是7,所以输出将是ersi.

Axe*_*ine 132

0:你

1:n

2:我

3:v

4:e

5:r

6:s

7:我

8:t

9:你

起始索引包含在内

结束指数是独家的

Javadoc链接

  • 谢谢,这正是我发现的信息; beginIndex - 起始索引,包括.endIndex - 结束索引,独占. (2认同)

mar*_*cog 13

两者都是基于0的,但开始是包容性的,结束是独家的.这可确保生成的字符串具有长度start - end.

为了使substring操作更容易,可以想象字符索引之间.

0 1 2 3 4 5 6 7 8 9 10  <- available indexes for substring 
 u n i v E R S i t y
        ?     ?
      start  end --> range of "E R S"
Run Code Online (Sandbox Code Playgroud)

引用文档:

子字符串从指定的开始, beginIndex并扩展到索引处的字符endIndex - 1.因此子串的长度是 endIndex-beginIndex.


Mat*_*att 8

请参阅javadoc.它是第一个参数的包容性索引,第二个参数是独占的.