重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いつもお世話になっております。

只今、JAVAのデータ(String)をCSVに出力する
プログラムを作成しております

String Head = "名前,年齢"
String name = "山田,田中"
String age = "19,27"

---CSV出力結果として---
1列目を
"名前,年齢"

2列目を
"山田,19"

3列目を
"田中,27"

としたいのですがどうすれば良いのでしょうか
基本的な(そのまま出力)は出来ます。
宜しくお願いします

A 回答 (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){
}
}
}
    • good
    • 0

>Splitを検索しましたが、使い方がよく分りませんでした。


マニュアルを読んでもわからないということ?どの辺が?
    • good
    • 0

今、マニュアル読んだ。


String#split() でよろしかろ。

この回答への補足

回答ありがとう御座います。
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からなど)の指定などが
分らない為断念しました。
どうか、宜しくお願いします。

補足日時:2008/06/01 18:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!