この記事では、C#での文字列の置換方法を解説します。
文字列を取り扱っていると、特定の文字を別の文字に置き換えたいことってありますよね。

はい。「猫」を「犬」に置き換えたいです。
これから紹介するテクニックを使えば、文字列置換の基本をマスターできます。
サンプルコードとともにわかりやすく解説していますので、ぜひ参考にしてください!
概要
文字列の置換方法(String.Replaceメソッド)
文字列を置換するには、String.Replaceメソッドを使います。
Replaceメソッドは、第一引数で指定した文字列を第二引数に置換した結果を返します。
具体的な構文としては以下の通りです。
public string Replace(string oldValue, string newValue);
public string Replace(char oldChar, char newChar);
次項では、サンプルと共にもう少し詳しく解説します。
サンプル&詳細解説
基本の置換
まずは基本的な文字列置換のサンプルです。
サンプルコード
using System;
namespace SampleCode
{
class SampleCode
{
static void Main()
{
string str = "ABCDE ABCDE";
// 「B」を「Z」に置換
string replaced = str.Replace("B", "Z");
// 置換後の文字列を出力
Console.WriteLine(replaced);
Console.ReadKey();
}
}
}
実行結果
AZCDE AZCDE
「ABCDE ABCDE」という文字列の「B」が「Z」に置換されました。
複数文字の置換
Replaceメソッドを以下のように記述すれば複数の文字を置換できます。
サンプルコード(抜粋)
string str = "ABCDE ABCDE";
// 「B」を「Z」に置換してから「C」を「X」に置換
string replaced = str.Replace("B", "Z").Replace("C", "X");
実効結果
AZXDE AZXDE
「B」が「Z」に、「C」が「X」に置換されました。
文字の削除(空文字への置換)
Replaceメソッドは、特定の文字を削除したい時にも使えます。
削除したい時は、第二引数に空文字を指定しましょう。
サンプルコード(抜粋)
string str = "ABCDE ABCDE";
// スペースを空文字に置換
string replaced = str.Replace(" ", "");
実効結果
ABCDEABCDE
スペースが空文字に置換(=削除)されました。
Replaceメソッドの注意点
Replaceはとてもシンプルなメソッドですので様々な使い方ができますが、以下のような場面では不向きといえます。
- 文字列のうち、最初に見つかった文字だけを置換したい。
→ Replaceメソッドは全て一括で置換されますので、一部だけの置換には不向きです。 - 大文字小文字を無視して置換したい。
→ Replaceメソッドは大文字と小文字を区別しますので、両方置換したい場合は2回に分けて処理する必要があります。 - 文字列の指定ではなく、特定の規則に則って置換したい。
→ 文字列の指定以外はできません。複雑な置換には不向きです。
これらの状況に対応する、より応用的な置換を行いたい場合は正規表現による置換(Regex.Replace)を使うとよいでしょう。
正規表現による置換(関連リンク)
正規表現による置換処理はこちらで解説しています!
まとめ
以下は当記事のまとめです!
- 文字列の置換には、主にString.Replaceメソッドを使用する。
- 空文字に置換することで特定文字の削除も行える。
- 全て一括で置換したくない場合や、大文字小文字を無視したい場合などはString.Replaceメソッドは不向き。応用的な置換を行う際は正規表現による置換(Regex.Replace)を使うと良い。
Replaceはさまざまな場面で使える便利なメソッドですので、今回解説しましたテクニックをしっかり理解して使えるようにしておきましょう!
もし忘れてしまった時は、いつでも当記事を読み返しにきてください。
Asura Programmingはあなたの帰りを待っています。
コメント