我有一项任务,我必须从文本文件中读取数据并总结每行中的数据。这是txt文件:
Chen Ruolin 9.2 9.3 9 9.9 9.5 9.5 9.6 9.8
Emilie Heymans 9.2 9.2 9 9.9 9.5 9.5 9.7 9.6
Wang Xin 9.2 9.2 9.1 9.9 9.5 9.6 9.4 9.8
Paola Espinosa 9.2 9.3 9.2 9 9.5 9.3 9.6 9.8
Tatiana Ortiz 9.2 9.3 9 9.4 9.1 9.5 9.6 9.8
Melissa Wu 9.2 9.3 9.3 9.7 9.2 9.2 9.6 9.8
Marie-Eve Marleau 9.2 9.2 9.2 9.9 9.5 9.2 9.3 9.8
Tonia Couch 9.2 9 9.1 9.5 9.2 9.3 9.4 9.6
Laura Wilkinson 9.7 9.1 9.3 9.4 9.5 9.4 9.6 9.2
名单和潜水分数列表。我们应该从文件中读取数据并将其放入数组中(我猜测每一行都是它自己的数组),丢弃每个潜水员的最高和最低分数并总结剩下的分数。因此,第一行的输出看起来像这样:
Chen Roulin: 56.90
我坚持的是如何获取一条线并创建一个数组(在这种情况下是一个字符串数组),它将单词和数字分开并将它们分别放入数组索引中。为了更清楚,第一行的数组将是:
String chenRoulin[] = {"Chen", "Roulin", "9.2", "9.3", "9", "9.9", "9.5", "9.5", "9.6", "9.8};
有了这个,我想我能够将Double.parseDouble数组中的数值加起来并按照我之前的解释加以总结。我知道2d数组并且已经尝试过这种方法,但是我遇到了同样的问题,因为到目前为止我发现的所有例子都是创建int或double数组。基本上,从文件的每一行中制作数组的最佳/最简单的方法是什么?在此先感谢您的帮助。这是我到目前为止的代码(它并不多):
import java.util.Scanner;
import java.io.*;
public class DivingData{
public static void main(String[] args) throws IOException {
File myFile = new File("diving_data.txt");
Scanner inputFile = new Scanner(myFile);
String line = inputFile.nextLine();
String[] chenRoulin = new String[10];
}
}
为了清楚起见,我只是在这项任务的某个部分寻求帮助,而不是试图让某人为我做这一切。
答案 0 :(得分:0)
我坚持的是如何划线并创建一个数组(a 字符串数组,在这种情况下)它将分隔单词和 数字并将它们分别放入数组索引
如果这是你唯一需要帮助的东西,只需在String上使用split方法,并将空格作为参数:
String line = "Chen Ruolin 9.2 9.3 9 9.9 9.5 9.5 9.6 9.8";
String[] array = line.split(" ");
答案 1 :(得分:0)
您可以使用:
line.split("\\s+");
然后为每个数组元素检查是否可以转换为double。表达式“\ s +”查找像制表符或空格字符的空格分隔符。
答案 2 :(得分:0)
基本上有两种方法可以解决您的问题: -
1)以面向对象的方式 - 使用String字段作为名称和double数组创建一个类。每行创建一个对象,然后处理每个对象。
2)你也可以使用Hashmap<String,Double[]>
(假设名称是唯一的)并将每一行放入一个条目。
就解析该行而言,还有两种方法 -
i)一种是拆分方法 - line.split(" ")
,它将返回一组数字。
ii)java中的StringTokenizer API - 请参阅此处http://www.java-samples.com/showtutorial.php?tutorialid=236