0

以前、Java で CSV ファイルを 2D 配列に変換する方法について質問しました。コードを完全に書き直しましたが、ほとんど手直し中です。私が今抱えている唯一の問題は、逆に印刷されていることです。つまり、列は行があるべき場所に印刷され、その逆も同様です。これが私のコードです:

 int [][] board = new int [25][25];

     String line = null;
     BufferedReader stream = null;
     ArrayList <String> csvData = new ArrayList <String>();

     stream = new BufferedReader(new FileReader(fileName));
        while ((line = stream.readLine()) != null) {
            String[] splitted = line.split(",");
            ArrayList<String> dataLine = new ArrayList<String>(splitted.length);
            for (String data : splitted)
                dataLine.add(data);
            csvData.addAll(dataLine);

        }

        int [] number = new int [csvData.size()];

        for(int z = 0; z < csvData.size(); z++)
        {
            number[z] = Integer.parseInt(csvData.get(z));
        }

        for(int q = 0; q < number.length; q++)
        {
            System.out.println(number[q]);
        }

        for(int i = 0; i< number.length; i++)
        {
            System.out.println(number[i]);
        }



        for(int i=0; i<25;i++)
            {
               for(int j=0;j<25;j++)
               {
                   board[i][j] = number[(j*25) + i]; 

            }
            }

基本的に、2D 配列は 25 行 25 列を想定しています。CSV ファイルを読み込むときに、それを String ArrayList に保存してから、それを 1 次元の int 配列に変換しました。任意の入力をいただければ幸いです。ありがとう

4

1 に答える 1

1

Java で CSV ファイルを読みたい場合は、OPEN CSV を使用することをお勧めします。

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import au.com.bytecode.opencsv.CSVReader;

public class CsvFileReader {
    public static void main(String[] args) {

        try {
            System.out.println("\n**** readLineByLineExample ****");
            String csvFilename = "C:/Users/hussain.a/Desktop/sample.csv";
            CSVReader csvReader = new CSVReader(new FileReader(csvFilename));
            String[] col = null;
            while ((col = csvReader.readNext()) != null) 
            {
                System.out.println(col[0] );
                //System.out.println(col[0]);
            }
            csvReader.close();
        }
        catch(ArrayIndexOutOfBoundsException ae)
        {
            System.out.println(ae+" : error here");
        }catch (FileNotFoundException e) 
        {
            System.out.println("asd");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("");
            e.printStackTrace();
        }
    }
}

ここから関連するjarファイルを取得できます

于 2013-02-28T05:51:40.250 に答える