在java中计算char

时间:2010-06-15 08:13:54

标签: java algorithm

这段代码有什么问题?

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

3 个答案:

答案 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非常不典型,特别是如果您正在阅读charReader更合适。

相关问题