我的導師給我的一項家庭作業是棒球統計程序。它從名爲stats.dat的文件中讀取,其中包含棒球運動員名字的名稱以及他們在蝙蝠時發生的事件列表。它會讀取並打印他們的名字和數量(o),命中(h),散步(w)並犧牲它們擁有的蒼蠅。這是個什麼文件包含:從文件中讀取統計數據
Willy Wonk,o,o,h,o,o,o,o,h,w,o,o,o,o,s,h,o,h
Shari Jones,h,o,o,s,s,h,o,o,o,h,o,o,o
Barry Bands,h,h,w,o,o,o,w,h,o,o,h,h,o,o,w,w,w,h,o,o
Sally Slugger,o,h,h,o,o,h,h,w
Missy Lots,o,o,s,o,o,w,o,o,o
Joe Jones,o,h,o,o,o,o,h,h,o,o,o,o,w,o,o,o,h,o,h,h
Larry Loop,w,s,o,o,o,h,o,o,h,s,o,o,o,h,h
Sarah Swift,o,o,o,o,h,h,w,o,o,o
Bill Bird,h,o,h,o,h,w,o,o,o,h,s,s,h,o,o,o,o,o,o
Don Daring,o,o,h,h,o,o,h,o,h,o,o,o,o,o,o,h
Jill Jet,o,s,s,h,o,o,h,h,o,o,o,h,o,h,w,o,o,h,h,o
到目前爲止,我有基本的想法了,雖然我不太明白每一行正在做(我修改程序的一些代碼在我的書類閱讀,打印出一個文本文件中的URL,然後打印出由/分隔的url的每個部分。我擁有它,這樣程序就可以打印出玩家的名字,但是我很難理解如何打印出他們得到的蒼蠅的命中,走出,散步的數量。到目前爲止,它的閱讀1個字符出列,然後下降到下一個玩家,並打印出2,然後3,等等。這裏是我有這麼遠代碼:
import java.util.Scanner;
import java.io.*;
public class BaseballStats
{
public static void main(String [] args) throws IOException
{
int hit = 0, walk = 0, sac = 0, out = 0, length = 0, wholeLength = 0;
Scanner fileScan, lineScan, statScan;
String fileName, playerName, line, stats, playerStats;
Scanner scan = new Scanner(System.in);
System.out.println("Enter the name of the file: ");
fileName = scan.nextLine();
fileScan = new Scanner(new File(fileName));
while (fileScan.hasNext())
{
System.out.println();
line = ("Player: " + fileScan.nextLine());
wholeLength = line.length();
lineScan = new Scanner(line);
lineScan.useDelimiter(",");
stats = lineScan.next();
statScan = new Scanner(stats);
statScan.useDelimiter(",");
while (statScan.hasNext())
{
System.out.println(statScan.next());
length = stats.length() - 1;
for (int i = 0; i < length; i++)
{
if (stats.charAt(i) == 'h')
hit++;
else if (stats.charAt(i) == 'o')
out++;
else if (stats.charAt(i) == 'w')
walk++;
else if (stats.charAt(i) == 's')
sac++;
}
}
System.out.println("Hits: " + hit + "\nOuts: " + out + "\nWalks: " + walk + "\nSacrifice flies: " + sac);
}
}
}
(我很難讓我的代碼中最後一個語句的最後部分在編輯器中正確顯示,對不起,如果看起來有點奇怪)我一直在想知道什麼是錯誤的,至今我都弄不清楚。有什麼能讓我走上正軌嗎?
嘗試在for循環之前打印統計信息,您可能會收到提示。 – Rickard
就我個人而言,我會使用'line.split(「,」)'並使用結果數組,而不是混淆掃描儀。 –