计划并没有给我预期的结果

时间:2017-02-18 06:34:34

标签: java

我的程序只允许我输入3个字符到数组而不是 5 。为什么会这样?

import java.io.*;
public class Prog{

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char c[] = new char[5];

        for(int i=0;i<-4;i++){
          c[i]= (char) br.read();
        }


    }
}   

1 个答案:

答案 0 :(得分:2)

来自BufferedReader#read()的Javadoc:

  

读取单个字符

换句话说,这将逐个读入每个字符。您似乎只能输入三个字符的原因是因为您在每个字符后按Enter键:

first character
ENTER
second character
ENTER
third character

使用readLine()

public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    char c[] = new char[5];

    for (int i=0; i<=4; i++) {
        c[i] = br.readLine().charAt(0);
    }
}

此方法将一次读取一行,在这种情况下,行被定义为单个字符后跟换行符。如果在给定的行输入中输入多个字符,则只使用第一个字符。