子字符串索引范围

2022-08-31 12:59:29

法典:

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

输出: ers

我真的不明白子字符串方法是如何工作的。索引是否从 0 开始?如果我从0开始,则索引为4,但char为7,因此输出将为。eiersi


答案 1

0: U

1: n

2: i

3: v

4: e

5: r

6: 秒

7: i

8: t

9: y

起始索引是包含性的

结束索引是独占的

Javadoc link


答案 2

两者都从 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"

引用文档

子字符串从指定的位置开始,并扩展到索引处的字符。因此,子字符串的长度为 。beginIndexendIndex - 1endIndex-beginIndex