2012-02-02 11 views
3

コンマに基づいてCSVファイルを分割することができました。私はこれまでダミーStringを配置し、 '、'があった後、ダミーStringに基づいて分割しました。Java - CSVファイルを配列に分割する

ただし、CSVファイルのようなものが含まれます。新しい行があるので

something, something, something 
something, something, something 

を、各行の最後と最初の値は、独自の文字列にマージされます。これをどうすれば解決できますか?私はダミーの文字列を配置しようとしました\nはそれに基づいてそれを分割するが見つかりましたが、成功しません。

ヘルプ?

+0

?とにかく、より良い助けを得るためにhttp://sscce.org/を投稿してください。 – jalopaba

答えて

5

ホイールを改造しないことを強くおすすめします:)。 CSVファイルを処理するために、既に使用可能なライブラリ、例えばのいずれかで行くOpenCSV

4

ダミー文字列が必要な理由はわかりません。コンマで分割してみませんか?

BufferedReader in = new BufferedReader(new FileReader("file.csv")); 
String line; 
while ((line = in.readLine()) != null) { 
    String[] fields = line.split(","); 
} 
+0

これは、行に基づいて分割するのに役立ちません。それが問題でした。 – mino

+2

あなたはそれぞれの行を読んで、それぞれを別々に分割することになっています。そして、合併の問題はありません。 – dogbane

-1

それはラインにあなたが言及したダミーの文字列を1として

   String[] a=scanner.next().split(" "); 
1

を分割しますfollowinを使用し、それが簡単に助けを借りて処理することができ既存の図書館の私は、オープンソースライブラリuniVocity-parsersを推奨したいと思います。これは、シンプルなAPI、有意義なパフォーマンスと柔軟性を備えています。

だけの配列でメモリにCSVデータを読み取るために数行のコードを参照してください。あなたが直接カンマを使用して分割されなかったのはなぜ

private static void parseCSV() throws FileNotFoundException { 
    CsvParser parser = new CsvParser(new CsvParserSettings()); 
    List<String[]> parsedData = parser.parseAll(new FileReader("/examples/example.csv")); 

    for (String[] row : parsedData) { 
     StringBuilder strBuilder = new StringBuilder(); 
     for (String col : row) { 
      strBuilder.append(col).append("\t"); 
     } 
     System.out.println(strBuilder); 
    } 
}