LoginSignup
4
6

More than 5 years have passed since last update.

カンマ区切り出力時の末尾カンマ削除

Last updated at Posted at 2016-06-26

はじめに

カンマ区切りで出力するプログラムは、プログラミングの入門者に対してロジックを考える訓練の一歩目となる課題だと思います。
参照:ひと区切りつけましょう

string[] data = {"A","B","C"};
string csv = "";
for(int i=0; i<data.Length; i++)
    csv += data[i] + ",";
Console.Write(csv);
//A,B,C,

これだと余分なカンマが出力されてしまいます。

末尾カンマを削除

末尾カンマを削除する方法は幾つかあります。

//ループ内でカンマ追記判定
string[] data = {"A","B","C"};
string csv = "";
for(int i=0; i<data.Length; i++){
    if(i!=0) csv += ",";
    csv += data[i];
}
Console.Write(csv);
//A,B,C
//ループ後にカンマ削除
string[] data = {"A","B","C"};
string csv = "";
for(int i=0; i<data.Length; i++){
    csv += data[i] + ",";
}
csv = csv.Substring(0, csv.Length-1);
//csv = csv.TrimEnd(','); //C#ならTrimEndでもいい
Console.Write(csv);
//A,B,C
//ループ中にカンマ文字列定義
string[] data = {"A","B","C"};
string csv = "";
string delimiter = "";
for(int i=0; i<data.Length; i++){
    csv += delimiter + data[i];
    delimiter = ",";
}
Console.Write(csv);
//A,B,C
//先に先頭の値をセット
string[] data = {"A","B","C"};
string csv = data[0];
for(int i=1; i<data.Length; i++){
    csv += "," + data[i];
}
Console.Write(csv);
//A,B,C

ライブラリを活用する場合

//String.Joinメソッド
string[] data = {"A","B","C"};
string csv = String.Join(",",data);
Console.Write(csv);
//A,B,C

CSVについて

CSV は「comma-separated values」だからカンマ区切りであり、タブ区切りなら 「tab-separated values」で TSV で拡張子は .tsvだろとかって知ったかぶりをすると微妙な空気になるかも知れません。

Comma-Separated Values – Wikipedia

タブ区切りされた tab-separated values (TSV)や、半角スペース区切りされた space-separated values (SSV) などがあり、これらをまとめて character-separated values (CSV)、delimiter-separated values とも呼ばれることも多い。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6