public static void main(String[] args) throws Exception {
System.out.println("Enter");
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
{
int c;
int count = 0;
while ((c = input.read()) != -1) {
System.out.println(+count);
count++;
}
}
}
只使用read()方法我想打印每个char的计数,例如:如果我的输入:star然后输出应该是:9,但是当我尝试将计数放在循环外时我的程序永远不会到来out of loop并打印总计数值,readline(),next(),hasnext()方法不计算char by char所以它们给我一个错误的结果
答案 0 :(得分:1)
while
循环永不退出,因为read
方法永远不会返回-1
。只有当流到达文件末尾(EOF)时才会这样做。必须关闭BufferedReader
使用的基础流(System.in
)才能实现此目的。
我不确定你的要求是什么,但是如果你想从控制台读取一行输入并确定该行有多少个字符,你可以这样做:
Scanner sc = new Scanner(System.in);
String line = sc.readLine();
int charCount = line.length();
System.out.println("Characters count: " + charCount);