作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
谁能告诉我为什么每次读取一个字符时for循环都会增加3?
public class Test {
public static void main(String[] args) {
char ch1=' ';
for(int i = 0 ; i < 5; i++) {
try { ch1 = (char) System.in.read();
} catch(Exception e) {}
System.out.println(i);
}
}
}
最佳答案
终端只能让您一次读取整行。当您按 Enter 键时,它会发送回车换行序列(2 个字符)来标记行的末尾。您可以通过将其包装在 do
循环中来过滤掉它们,如下所示:
for (int i = 0 ; i < 5; i++) {
do {
try {
ch1 = (char)System.in.read();
} catch (Exception e) {}
} while (ch1 == '\n' || ch1 == '\r');
System.out.println(i);
}
请注意,如果您创建 Scanner
来自System.in
,它具有获取整行输入的方法以及其他使其比处理单个字节更容易使用的方法。
关于java - For 循环 读取 char 时加 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26921747/
我是一名优秀的程序员,十分优秀!