从java中的文本文件中创建整数列表

时间:2017-03-24 18:57:14

标签: java

我试图根据用户输入的数字进行设置,我将其与单独文件中的一系列数字进行比较,然后选择大于输入数字的数字。

到目前为止,我有这个:

   BufferedReader br = new BufferedReader(new FileReader(file));
     String line = null;
       while ((line = br.readLine()) != null) {

我只能阅读该文件,但我不知道如何做整个"比较"步。我想我需要以某种方式定义文件中的每个数字,并将其与用户数量进行比较。文本文件如下所示:

1
2
3
4
5
6
7

如果用户选择数字4,我希望它打印"有3个数字大于4"或者那种程度的东西。

我想我需要列出文件中的数字,但我不知道该怎么做。我只是一个初学者。我真的不知道从哪里开始。如果解决方案存在类似问题,请链接。我很感激任何帮助/建议。请帮我。 TY提前。

2 个答案:

答案 0 :(得分:0)

您可以使用ArrayList存储数据。

ArrayList<Integer> list = new ArrayList();
while ((line = br.readLine()) != null) {
    Integer userInputAsInteger = Integer.parseInt(line);
    if(userInputAsInteger > num){
      list.add(userInputAsInteger );
}
}

然后您可以使用此列表来获取大于num的元素数:

System.out.println(list.size() + " numbers are larger then " + num);

您还可以打印出数字:

for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}

答案 1 :(得分:0)

您可以利用Streams和Java 8来解决您的问题

try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
  long n = stream.mapToInt(Integer::valueOf)
    .filter(readNumber -> readNumber > num)
    .count();
  System.out.println("There are " + n + " numbers in the file greater than " + num);
} catch (IOException e) {
  System.out.println(e.getMessage());
}

假设fileName包含文件名称,num包含用户选择的数字,请使用try-with-resources打开文件并创建Stream,其中包含文件。将流映射到int of Stream,然后对其进行过滤以仅获取大于num的值。最后,应用count以获取满足谓词的元素数并打印消息。

希望它有所帮助。