请问bufferedreader在java算法中怎么使用,因为算法中输入的数组一般只有用空格隔开,而bufferedeader又只能一行一行输入,请问有什么解决办法吗
不知道你这个问题是否已经解决, 如果还没有解决的话:首行输入数组大小,次行输入数组内容,依次用空格隔开。
它的优势在于消耗比scanner更少的内存和时间,如果在写算法时优先使用BufferedReader方法。
注意:使用完记得close,Scanner方法不需要close。
public static int[] ListInput() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = 0;
String str = null;
N= Integer.parseInt(br.readLine());
str = br.readLine();
br.close();
int[] myList = new int[N];
String[] strArray = str.split(" ");
for (int i = 0; i < N; i++) {
myList[i] = Integer.parseInt(strArray[i]);
}
return myList;
}
···
读入一行之后,按空格分隔
字符串的split方法
你可以参照一下代码学习下,
public static void main(String[] args){
//创建字符数组
char[] arr = {'a','b','c','d','e'};
//创建字符数组输入流
CharArrayReader car = new CharArrayReader(arr);
//创建BufferedReader缓冲流
BufferedReader br = new BufferedReader(car);
//通过BufferedReader缓冲流读取字符数组
try{
String str = null;
while((str=br.readLine())!=null)
System.out.println(str);
br.close();
}catch(IOException e){
e.printStackTrace();
}
}