簡體   English   中英

Java如何讀取txt文件並使每一行成為自己的字符串數組

[英]Java how to read a txt file and make each line it's own string array

我有一個作業,我必須從文本文件中讀取數據並匯總每一行中的數據。 這是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];


  }
}

需要明確的是,我只是在這項任務的一部分上尋求幫助,而不是試圖讓某個人在這里為我做這一切。

我堅持的事情是如何進行一行創建一個數組(在本例中為字符串數組),在該數組中將單詞和數字分開並將它們分別放入數組索引中

如果確實這是您唯一需要幫助的內容,則只需對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(" ");

您可以使用:

line.split("\\s+");

然后針對每個數組元素檢查是否可以轉換為double。 表達式“ \\ s +”尋找空格分隔符,例如制表符或空格字符。

解決問題的方法基本上有兩種:-

1)面向對象的方式-創建一個以String字段作為名稱和double數組的類。 每行創建一個對象,然后處理每個對象。

2)您也可以使用Hashmap<String,Double[]> (假設名稱是唯一的)並將每一行放入一個條目中。

就解析行而言,還是有兩種方法-

i)一種拆分方法line.split(" ") ,它將返回數字數組。

ii)Java中的StringTokenizer API-參見此處http://www.java-samples.com/showtutorial.php?tutorialid=236

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM