Java如何读取txt文件并使每一行成为它自己的字符串数组

时间:2014-12-03 02:42:42

标签: java arrays file-read

我有一项任务,我必须从文本文件中读取数据并总结每行中的数据。这是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];


  }
}

为了清楚起见,我只是在这项任务的某个部分寻求帮助,而不是试图让某人为我做这一切。

3 个答案:

答案 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