【发布时间】:2021-12-27 01:23:57
【问题描述】:
我想在 BufferedReader 给出的字符串中搜索整数。整数必须保存在整数列表中并返回。
我的想法是将字符串拆分为字符串 [] 并将整数与 Integer.parseInt 直接保存在数组列表中,但不幸的是我只得到 NumberFormatExceptions,尽管字符串 [] 已填充。
有人能给我一些建议吗?
public List<Integer> getIntList(BufferedReader br) {
List <Integer> List = new ArrayList<>();
try{
while(br.ready()){
try{
String line = (br.readLine());
String [] arr = line.split("\\s");
for (String s : arr) {
System.out.println(s);
}
if(line.equals("end")){
return List;
}
for (String s : arr) {
List.add(Integer.parseInt(s));
}
}
catch(IOException e){
System.err.println("IOException");
}
catch(NumberFormatException e){
System.out.println("Number");
}
}
return List;
}
catch(IOException e){
System.err.println("IOException");
}
return null;
}
【问题讨论】:
-
while (br.ready())不是检查数据结尾的正确方法。ready()只会告诉你是否可以不阻塞地读取数据。检查数据是否结束的唯一正确方法是检查br.readline()是否返回null。
标签: java string list integer bufferedreader