java - 输出中的第一行
问题描述
我正在尝试在一行中打印第一个字符,然后在下一行中打印前两个字符等。
我不明白开头有空行的原因以及最后一行没有完成单词的原因。通过将 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));
}
}
}
输入四的输出是,
鬼鬼祟祟
_
_
解决方案
因为子字符串 (0,0) 是“”。正如String.substring(int, int)
Javadoc所说(部分)
子字符串从指定开始
beginIndex
并延伸到 index 处的字符endIndex - 1
。
这就是为什么你得到一个空行i
at 0
。以及为什么在最后一个字符时没有得到最后i
一个字符。你可以substring
用+ 1
like来调整你的电话
for (int i = 0; i < k; i++) {
System.out.println(userInput.substring(0,i + 1));
}
推荐阅读
- android - 获取错误索引 0 请求,当想要选择时,android Sqlite 中的大小为 0
- javascript - 无法获取未定义或空引用的属性“d”
- typescript - TypeScript:将联合类型映射到另一个联合类型
- tcl - Tcl8.6.5 USE_TCL_STUBS tclDecls.h # undef Tcl_StaticPackage,
- python - 将 col 添加到 pd.df 并从第二个 df 查找值
- r - AR 中的测试和训练集分区问题
- python - 索引多级索引数据框
- python - scikit learn 中的预测和评分如何工作
- node.js - 使用jest和supertest测试koa2时Require返回一个空对象
- python - 字典列操作计数器