![](/img/trans.png)
[英]Compare each line in a .txt file to a array String in Java
[英]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.