2

テキスト ファイルは次のようになります。

データ,データ,データ,データ
データ,データ,データ,データ

データは数値です。カンマで区切られた4つの数字と約2000行。ただし、一度に 20 行しか使用する必要はありません。開始行はその番号で選択する必要があり、その後 19 行が追加されます。

このデータは、一意に名前が付けられた変数 (float) に入れる必要があるため、それらに対して計算を行うことができます。したがって、次のように名前を付けることができます。

DataOne1 DataOne2 DataOne3 DataOne4
DataTwo1 DataTwo2 DataTwo3 DataTwo4

このようにして、DataTwo1 - DataOne3 のような計算を行うことができます。もちろん、これらの変数には常に同じ名前が付けられますが、新しい行を選択することで基になるデータを変更できます。

申し訳ありませんが、これは初心者の質問ですが、正確な解決策を得るためにさまざまな解決策から物事をまとめることができませんでした。

だから私の質問はどうすればいいですか?

4

3 に答える 3

5

1.メソッドを使用して行全体を読み取ることができます)。ScannernextLine(

2.次に、split()メソッドを使用して(データが(「、」)カンマで区切られていると想定しています)、行上の4つのデータすべてを取得します。

例えば:

String[] s = strLine.split(",");

3. of の 作成を検討してから、配列内の各項目を in の項目に変換しますArrayListFloatString[]FloatArrayList Float.parseFloat()

ArrayList<Float> fArr = new ArrayList<Float>();
for (String temp : s){
    fArr.add(Float.parseFloat(temp));
}

4.次に、必要な計算を行います。

于 2012-07-22T13:36:38.740 に答える
0

これがコードです。各行について、値を配列に格納しました。したがって、DataOne1はcols0 [0]に、DataTwo1はcols0 [1]に、DataTwo1はcols1 [0]に、DataTwo2はcols1[1]になります。この目的には2次元配列を非常にうまく使用できますが、単純にするために、このアプローチを選択しました。

 try {
        BufferedReader br = new BufferedReader(new FileReader("fileName"));
        String line;
        float[] col0 = new float[20];
        float[] col1 = new float[20];
        float[] col2 = new float[20];
        float[] col3 = new float[20];
        for (int i = 0; i < 20; i++) {
            while((line = br.readLine()) != null) {
                // Since you told comma as separator.
                String[] cols = line.split(","); 
                col0[i] = Float.valueOf(cols[0]);
                col1[i] = Float.valueOf(cols[1]);
                col2[i] = Float.valueOf(cols[2]);
                col3[i] = Float.valueOf(cols[3]);
            }
            // Do something - your math.
        }
        br.close();
    }
    catch (FileNotFoundException e1) {
        e1.printStackTrace();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
于 2012-07-22T13:49:41.030 に答える
0

これらはあなたが望むものを得るためにあなたがする必要があるステップです:

1 .:を使用してファイルを開きBufferedReaderます

BufferedReader br = new BufferedReader(new FileReader(filename));

2.スタートラインに到達します。

for (int i = 0; i < startLine; i++) {
    line = br.readLine();
}

3.必要な20行を処理し、番号をArrayList<Double>

for (int i = startLine; i < startLine + 20; i++) {
   line = br.readLine();

   // Split the lines using comma as delimiter
   String[] numberStrings = line.split(",");
   ArrayList<Double> numbers= new ArrayList<Double>();

   for(String numberString : numberStrings) {
       Double number = Double.valueOf(numberString);
       numbers.add(number);
   }
   // Do calculations with them
}
于 2012-07-22T13:46:01.420 に答える