首页 > 解决方案 > 输出中的第一行

问题描述

我正在尝试在一行中打印第一个字符,然后在下一行中打印前两个字符等。

我不明白开头有空行的原因以及最后一行没有完成单词的原因。通过将 for 循环更改为(i=1 和 i<=k),我能够获得所需的输出。

public class Tester6 {
    public  static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    String userInput = input.nextLine();
    int k = userInput.length();
    for(int i = 0; i < k; i++) {
        System.out.println(userInput.substring(0,i));
    }
  }
}

输入四的输出是,

鬼鬼祟祟
_
_

标签: java

解决方案


因为子字符串 (0,0) 是“”。正如String.substring(int, int)Javadoc所说(部分)

子字符串从指定开始beginIndex并延伸到 index 处的字符endIndex - 1

这就是为什么你得到一个空行iat 0。以及为什么在最后一个字符时没有得到最后i一个字符。你可以substring+ 1like来调整你的电话

for (int i = 0; i < k; i++) {
    System.out.println(userInput.substring(0,i + 1));
}

推荐阅读