这段代码有什么问题?
import java.io.IOException;
import java.util.*;
public class char_digit {
public static void main(String[] args) throws IOException {
int count=0;
while (true){
char t=(char) System.in.read();
if (t=='0'){
break;
}
count++;
}
System.out.println(count);
}
}
run:
a
b
c
d
e
f
0
12
答案 0 :(得分:8)
您正在计算换行符以及其他字符。在当前if (t == '\n') continue;
之前尝试if
之类的内容。
答案 1 :(得分:2)
没有错。回车也算作一个字符(或2,取决于你的操作系统)
答案 2 :(得分:1)
问题在于您还要计算空格字符,当您按 Enter 按钮进入控制台时会插入这些字符。一个快速解决方法是使用Character.isWhitespace
检查如下:
if (t=='0'){
break;
} else if (!Character.isWhitespace(t)) {
count++;
}
根据您的目的,java.util.Scanner
可能会更好地满足您的目的。直接使用System.in.read
非常不典型,特别是如果您正在阅读char
,Reader
更合适。