• 締切済み

JAVA CSV加工について

いつもお世話になっております。 只今、JAVAのデータ(String)をCSVに出力する プログラムを作成しております String Head = "名前,年齢" String name = "山田,田中" String age = "19,27" ---CSV出力結果として--- 1列目を "名前,年齢" 2列目を "山田,19" 3列目を "田中,27" としたいのですがどうすれば良いのでしょうか 基本的な(そのまま出力)は出来ます。 宜しくお願いします

みんなの回答

  • nknk80
  • ベストアンサー率65% (17/26)
回答No.3

split()を使うとこんな感じになると思います。 この例では、それぞれの文字列中のカンマの個数は同じであることを前提としています。 public class Test1{ public static void main(String[] args){ String fname="test.csv"; String title="名前,年齢,性別"; String name="山田,田中,鈴木,佐藤"; String age="19,20,20,25"; String sex="男性,女性, ,男性"; // ---> String[] nameArray=name.split(","); String[] ageArray=age.split(","); String[] sexArray=sex.split(","); // <--- try{ FileOutputStream fos=new FileOutputStream(fname); OutputStreamWriter osw=new OutputStreamWriter(fos,"Shift_JIS"); BufferedWriter bw=new BufferedWriter(osw); // ---> bw.write(title); bw.write('\n'); int count=nameArray.length; for(int i=0;i<count;i++){ bw.write(nameArray[i]); bw.write(','); bw.write(ageArray[i]); bw.write(','); bw.write(sexArray[i]); bw.write('\n'); } // <--- bw.close(); osw.close(); fos.close(); } catch(Exception e){ } } }

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

>Splitを検索しましたが、使い方がよく分りませんでした。 マニュアルを読んでもわからないということ?どの辺が?

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

今、マニュアル読んだ。 String#split() でよろしかろ。

rdyiojey
質問者

補足

回答ありがとう御座います。 Splitを検索しましたが、使い方がよく分りませんでした。 public class Test1 { public static void main(String[] args) { String fname = "test.csv"; String title = "名前,年齢,性別"; String name = "山田,田中,鈴木,佐藤"; String age = "19,20,20,25"; String sex = "男性,女性, ,男性"; try{ FileOutputStream fos = new FileOutputStream(fname); OutputStreamWriter osw = new OutputStreamWriter(fos , "Shift_JIS"); BufferedWriter bw = new BufferedWriter(osw); bw.write(title); bw.write("\n"); bw.write(name); bw.write("\n"); bw.write(age); bw.write("\n"); bw.write(sex); bw.close(); osw.close(); fos.close(); }catch (Exception e){ } } } ---CSV出力として--- | 名前 | 年齢 | 性別 | ---------------- | 山田 |  19 | 男性 | ---------------- | 田中 |  20 | 女性 | ---------------- | 鈴木 |  20 |    | ----------------     | 佐藤 |  25 | 男性 | としたいのです。 上のプログラムでは ---CSV--- | 名前 | 年齢 | 性別 |    | --------------------- | 山田 | 田中 | 鈴木 | 佐藤 | --------------------- |  19 |  20 | 20  |  25 | --------------------- | 男性 | 女性 |    | 男性 | となってしまいます。 Tokenizerを使って改行はできましたが、 Excelで言うセル(B2からなど)の指定などが 分らない為断念しました。 どうか、宜しくお願いします。

関連するQ&A