C#

【C#】テキストファイルの特定の文字の前後の文字列を入れ替える

こんにちは。まれーどです。

今日は、痒い所に手が届くみたいなコードを書いてきました。
たまに、「=」の前後を入れ替えたいなぁみたいなことがあるんですよ。データバインドとデータ更新のパラメータ設定みたいなところで。それを一発で?いけるようにしました。
Windowsでテキストファイルでのみ実行確認してます。

使い方

splitCharの値には、前後入れ替えする基準の文字を設定します。1文字だけかと思ったら2文字以上でも大丈夫そうでした。
lastCharの値は、最後の文字が変わってほしくない場合は設定してください。C#の処理の最後には、セミコロンが必要だったので項目を入れておきました。不要だったら何も設定しなくて大丈夫です。

実践

今回はコンソールでファイルパスを入力させるようにしました。

ここにファイルをドラッグアンドドロップします。
ファイルパスを入力
実行前のテキスト
実行後のテキスト

という感じで「=」の前後の文字が入れ替わっていることが確認できました。

ファイルとソース

実行ファイルだけほしい方はこちらから(Windowsでのみ実行確認)

必要ないかもしれないけどGitにソースアップしました。

https://github.com/maremarayd/frontback-change

ソース解説

for (int i = 0; i < list.Count; i++)
{
    var item = list[i].TrimEnd(last).Split(config.Get("splitChar"));
    if(item.Length > 2)
    {
        Console.WriteLine("分割結果が2より多いです。");
        continue;
    }
    sw.WriteLine(item[1] + config.Get("splitChar") + item[0] + config.Get("lastChar"));
}

大したことはしてないですが、splitした結果を入れ替えて設定しているだけです。今回は2つの値だけを入れ替えるので、分割結果の文字配列item[0]とitem[1]を固定にしちゃってます。前後の入れ替えだけなので許してくれ…。

最後に

いつか使う場面あるかなぁ。