在使用子字符串打印字符模式时,为什么我被初始化为 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
我理解这个程序,唯一的疑问是 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