2014-03-03 170 views
0

我想完成我的實驗室在我的介紹CS課程,並無法從txt文件中讀取信息並使用它。閱讀和使用txt文件java

下面是到目前爲止我的代碼:

import java.io.*; 
import java.util.*; 

public class loops { 
public static void main (String [] args) throws FileNotFoundException{ 

File myFile = new File("Snowboard_Scores.txt"); 
Scanner input = new Scanner(myFile); 

String name; 
String country; 
int snow1; 
int snow2; 
int snow3; 
double score; 
int max = 0; 

while (input.hasNext()){ 
    System.out.println(input.nextLine()); 
    max++; 
} 
System.out.println(max); 

for (int count = 0; count < max; count ++){ 

} 
} 
} 

該實驗室是簡單的,我比較來自不同4+滑雪三個分數。每個滑雪者都有一個名字,一個國家和3名評委。我需要平均分數,然後將其與所有滑雪板進行比較,以查看誰獲得了最佳分數,然後打印出滑雪板名稱和國家/地區。

我正在努力收集和存儲所有數據的方式,這將是有用的。我們現在不能在我們的實驗室中使用陣列,任何人對如何解決這個問題有任何想法?

Snowboard_Scores.txt:

Shaun White 
United States 
9.7 
9.8 
9.6 
Bob Saget 
Yugolsavia 
1.4 
2.1 
1.9 
Morgan Freeman 
Antartica 
10.0 
9.9 
9.8 
Diana Natalicio  
Brazil 
8.7 
8.7 
9.2 
+0

「Snowboard_Scores.txt」文件是怎麼樣的? – rpax

+0

對不起,應該補充一點。 連成一條線, 一線名稱 二線國家 2-5分數線 6號線名稱 7號線國家等 –

+0

你說你不能使用數組。你可以用什麼? – rpax

回答

0

其過於簡單;
在讀取數據時處理數據;
讀取每個滑雪板並與最佳預置值進行比較;
然後選擇best作爲最佳值;看到下面的代碼

import java.io.*; 
import java.util.*; 

public class loops { 
public static void main (String [] args) throws FileNotFoundException{ 

    File myFile = new File("Snowboard_Scores.txt"); 
    Scanner input = new Scanner(myFile); 

    String name = ""; 
    String country = ""; 
    double score = 0.0; 

    while (input.hasNext()){ 
     String tmp_name = input.nextLine(); 
     String tmp_country = input.nextLine(); 
     double tmp = Double.parseDouble(input.nextLine())/3; 
     tmp += Double.parseDouble(input.nextLine())/3; 
     tmp += Double.parseDouble(input.nextLine())/3; 
     if(tmp > score){ 
      name = tmp_name; 
      country = tmp_county; 
      score = tmp; 
     } 
    } 
    System.out.println(name); 
    System.out.println(country); 
} 

你說得對。一行錯過

+0

在初始化它之後,您從不修改分數。國家= tmp_county後; score = tmp; ? – user1399238

+0

是的那條線錯過了! – vorujack

+0

這個工作,但是國家的名稱不會出於任何原因顯示。 –

0

只是稍作修改。

while (input.hasNext()){ 

String tmp_name = input.nextLine(); 
String tmp_country = input.nextLine(); 

double tmp_avg = Double.parseDouble(input.nextLine())/3; 
tmp_avg += Double.parseDouble(input.nextLine())/3; 
tmp_avg += Double.parseDouble(input.nextLine())/3; 

if(tmp_avg > score){ 
    score = tmp_avg; 
    name = tmp_name; 
    country = tmp_country; 
} 
}