テキスト ファイルから配列を読み取るときに、配列に必要な要素の数を確認できるように、配列リストを作成する方法を教えてください。これを行う方法をまだ学んでいないので、助けていただければ幸いです。正しい配列が格納されていない場合は null になるため、修正が必要なコードの部分を示します。この部分は助けが必要ですが、その下に完全なコードがあります。
public static void output(tokens[], correct[], percentage[], letterGrade[], double totalAVG, int highScore, int lowScore)
{
PrintWriter pw = new PrintWriter(new FileWriter("Result.txt")) ;
for (int t=0 ; t< tokens.length ; t+=2 )
{
g = 0 ;
pw.println(tokens[t] + "," + correct[g] + percentage[g] + letterGrade[g]) ;
g++ ;
}
pw.println("Average: " + totalAVG + "% (" + totalGrade + ")") ;
pw.println("High Score: " + highScore*2) ;
pw.println("Low Score: " + lowScore*2) ;
pw.close() ;
import java.util.* ;
import java.io.* ;
public class Proj5
{
public static void main(String[] args) throws IOException
{
Scanner s = new Scanner(System.in) ;
/* この部分は、ファイルとの接続を開き、各行を分割してから、部分を配列 (トークン) に入れます。*/
String[] tokens= information(fileCheck) ;
/* * * ID と回答を含むファイルへの接続を開き、それらを分割して返します。* @param (文字列 a) は、メソッドで使用するファイル名を取り込みます * @return 分割されたファイルを含む配列を返します。*/
public static String[] information(String a) throws IOException
{
Scanner inFile = new Scanner (new File(a)) ; // opens connection with file
String[] quarters = new String[] ;
int index = 0 ;
int lengthArray = 0 ;
while (inFile.hasNext())
{
lengthArray++ ;
}
while (inFile.hasNext())
// ファイル内の行が増えるまでループ {
String line = inFile.nextLine() ; // brings in next line to be broken up
String[] array = line.split(",") ;
quarters[index] = array[0] ; //stores lines into array tokens
index++ ;
quarters[index] = array[1] ;
index++ ;
}
inFile.close() ; // close connection to file
return quarters ;
} // end information
/** * (必要な情報を出力します) * * @param はデータ配列を取り込みます * @param は正確な数値配列を取り込みます * @param は正確なパーセンテージ配列を取り込みます * @param * (すべてのパラメーターを 1 行に 1 つずつリストします) * @ return None */ public static void output(tokens[], correct[], percentage[], letterGrade[], double totalAVG, int highScore, int lowScore) { PrintWriter pw = new PrintWriter(new FileWriter("Result.txt") ) ;
for (int t=0 ; t< tokens.length ; t+=2 )
{
g = 0 ;
pw.println(tokens[t] + "," + correct[g] + percentage[g] + letterGrade[g]) ;
g++ ;
}
pw.println("Average: " + totalAVG + "% (" + totalGrade + ")") ;
pw.println("High Score: " + highScore*2) ;
pw.println("Low Score: " + lowScore*2) ;
pw.close() ;
} // 出力終了
} // クラス終了