我的程序只允许我输入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();
}
}
}
答案 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);
}
}
此方法将一次读取一行,在这种情况下,行被定义为单个字符后跟换行符。如果在给定的行输入中输入多个字符,则只使用第一个字符。