在java中使用read()方法进行计数

在java中使用read()方法进行计数,java,Java,仅使用read()方法,我想打印每个字符的计数,例如:如果我的输入:星号,则输出应为:9,但当我尝试将计数放在循环之外时,我的程序从未从循环中出来并打印总计数值,readline(),next(),hasnext()方法不逐字符计数,因此它们会给我一个错误的结果您的,而循环从不存在,因为读取方法从不返回-1。它仅在流到达文件末尾(EOF)时执行此操作。BufferedReader使用的底层流(System.in)必须关闭才能发生 我不确定您的要求是什么,但如果您希望从控制台读取一行输入并确定该行

仅使用read()方法,我想打印每个字符的计数,例如:如果我的输入:星号,则输出应为:9,但当我尝试将计数放在循环之外时,我的程序从未从循环中出来并打印总计数值,readline(),next(),hasnext()方法不逐字符计数,因此它们会给我一个错误的结果

您的
,而
循环从不存在,因为
读取
方法从不返回
-1
。它仅在流到达文件末尾(EOF)时执行此操作。
BufferedReader
使用的底层流(
System.in
)必须关闭才能发生

我不确定您的要求是什么,但如果您希望从控制台读取一行输入并确定该行有多少个字符,您可以执行以下操作:

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++;

        }

    }
}
Scanner sc = new Scanner(System.in);
String line = sc.readLine();
int charCount = line.length();
System.out.println("Characters count: " + charCount);