我试图根据用户输入的数字进行设置,我将其与单独文件中的一系列数字进行比较,然后选择大于输入数字的数字。
到目前为止,我有这个:
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提前。
答案 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以获取满足谓词的元素数并打印消息。
希望它有所帮助。