我该怎么做?
给我一个字>糖
取值
苏
SUG
菅
糖
这是我到目前为止所做的:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter a word:");
String word = scan.nextLine();
int length = word.length();
for(int number = 0; number < length; number++){
System.out.println(word.charAt(number));
}
}
这使得单词逐字显示。
答案 0 :(得分:4)
我建议使用String.substring(int startIndex, int endIndex)
。
对你来说,你的程序看起来像这样:
String s = "Sugar";
for(int i = 0; i < s.length() - 1; i++) {
System.out.println(s.substring(0,i));
}
请记住,startIndex是包含在内的,endIndex是独占的。所以"Sugar".substring(0,3)
会给出“Sug”。
答案 1 :(得分:3)
一种方法是使用String
concaternation的形式......
String word = "Sugar";
int length = word.length();
StringBuilder sb = new StringBuilder(word.length());
for (int number = 0; number < length; number++) {
sb.append(word.charAt(number));
System.out.println(sb.toString());
}
基本上,这会将每个字符附加到每个循环上的构建器,打印结果......
S
Su
Sug
Suga
Sugar
另一种方法可能是使用复合循环...
String word = "Sugar";
int length = word.length();
for (int number = 0; number < length; number++) {
for (int inner = 0; inner < number; inner++) {
System.out.print(word.charAt(inner));
}
System.out.println("");
}
外部(第一个)循环控制您要打印的字符数,内部(第二个)循环物理打印从开始到您要打印的字符数的每个字符...(nb:这将打印一个领先的空白空间,所以你可能需要if
来控制它,如果它很重要的话)