在使用子字符串打印字符模式时,为什么我被初始化为 1 而不是 0?

while using substring to print a character pattern why has i been initialized to 1 instead of 0?

我理解这个程序,唯一的疑问是 i 被初始化为 1 的部分。由于字符串像数组一样存储,所以 0 处的第一个字符应该是字符串对吗?那为什么是一个。如果您也能帮助我理解子字符串方法的工作原理,我将不胜感激:)).

样本输入:学校 示例输出: 小号 SC SCH SCHO 学校 学校

 /*taking SCHOOL as example and print S SC SCH ...*/
import java.util.*;
public class substring
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("enter a string");
        String word = sc.next();
        
        int x= word.length();
        
        for( int i = 1; i<=x; i++)
        System.out.println(word.substring(0,i));
    }
    
}

String.substring (int begIndex, int endIndex)方法中,endIndex不索引子字符串的最后一个字符。它索引字符 子字符串的最后一个字符之后。

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int,%20int)

Thus, the length of the substring is endIndex-beginIndex