我很难学习文件行处理。我知道如何通过while循环和.hasNextLine来读取文件的行,并且如果它包含我正在搜索的值,我甚至可以打印整行。我只是不明白如何在文本文件的特定行中获取单个值(字符串,整型,双精度)并对它们进行排序,然后按特定顺序打印出我想要的值。我的教授刚刚通过我们的教科书中的这一章,我们有一个测试即将到来,任何有助于弄清楚这一点将非常感激(甚至开放视频讲座/教程链接)Java文件行处理(基础知识)
我会扔在一起的做法下面的问题给我举例说明我的意思。
一个文本文件,列出了得分的学生在过去的3次测试,如:
Nick 85 90 76 Hannah 86 91 66 Joe
22 35 100
Zak 100
40 80
现在,说我要输出的最高分数与他们按字母顺序命名每个孩子。我该怎么做呢?我在本周晚些时候进行的测试不允许使用阵列或任何奇特的实用程序,我们预计只能使用扫描器和循环。
预期输出:
Hannah: 91, 86
Nick: 90, 85
Joe: 100, 35
Zak: 100, 80
我如何接近像现在这种权利的一个问题:
Scanner exampleFile = new Scanner(new File("file.txt"));
String name;
while(exampleFile.hasNextLine()){
name = exampleFile.nextLine();
Scanner linescan = new Scanner(name);
if(linescan.hasNext()){
int a = linescan.nextInt();
int b = linescan.nextInt();
int c = linescan.nextInt();
int a1 = Math.max(a, b);
int a2 = Math.max(a, c);
System.out.println(linescan.next() + ": " + Math.max(a1, a2) + ", " + "middle value idk how to get");
}
}
我不知道如果我在正确的轨道上,或者如果我错过了一件令人难以置信的明显东西,那将会照亮一切,并让我成为文件处理的上帝。所有的社区智慧都表示赞赏
看起来文本输入将会根据什么数据在哪一行以及它们之间有多少空间而被随机格式化。这是否准确? – childofsoong 2015-02-24 01:59:17
是的,它是随机格式化的。每个数据值之间的单个空间,然后是换行符后的随机间距。根据我们在课堂上所做的,我只是把它放在头顶上。当数据到处都是这样的时候,是否无法获得所需的输出? – zodian 2015-02-24 02:34:41
好奇为什么这个问题得到3 downvotes? – 2015-02-24 02:36:29