文字列の中の「特定の文字列」を
「指定した文字列」に置き換える方法をご紹介します。
文字列を置換する
Dim str As String = "佐藤,鈴木,田中"
Dim ret As String
ret = str.Replace("鈴木", "高橋")
Console.WriteLine(ret)
佐藤,高橋,田中
文字列を置換するには、String.Replaceメソッドを使います。
第1引数に、置換元の文字列
第2引数に、置換後の文字列を指定します。
戻り値には、置換後の文字列が返ります。
元の文字列(str)は変更されません。
文字列の削除
Dim str As String = "佐藤鈴木田中鈴木高橋"
Dim ret As String
ret = str.Replace("鈴木", "")
Console.WriteLine(ret)
佐藤田中高橋
String.Replaceメソッドを使って、文字列の削除を行う事もできます。
第1引数に削除したい文字列、第2引数に“” と指定します。
改行文字の置換
Dim str As String = "佐藤" & vbCrLf & "鈴木" & vbCrLf & "田中"
Dim ret As String
ret = str.Replace(vbCrLf, " ")
Console.WriteLine(ret)
佐藤 鈴木 田中
改行文字は vbCrLf で表されます。(場合によっては「vbCr」か「vbLf」)
このプログラム例では、改行文字を半角スペースに置換しています。
高機能の置換処理(位置指定、回数指定)
Dim str As String = "佐藤,鈴木,田中,鈴木,高橋"
Dim ret As String
ret = Replace(str, "鈴木", "遠藤", 1, 1)
Console.WriteLine(ret)
佐藤,遠藤,田中,鈴木,高橋
VB.NETのReplace関数を使うと、
String.Replaceメソッドよりも細かい指定が可能です。
このプログラム例では、”鈴木”を”遠藤”に置き換えますが、
回数を1回に指定しています。
なので、文字列の先頭から見ていき、
最初に見つかった”鈴木”を置換しますが、
この1回のみで置換作業を終了します。
Replace関数の第3引数は、スタート地点(xx文字目)、
第4引数は置換する回数を指定します。
第3引数と第4引数は省略可能です。
(第3引数を省略すると、1が指定されます(1文字目から))
(第4引数を省略すると、-1が指定されます(文字列の最後まで置換処理する。)
戻り値は、第3引数で指定したスタート地点から始まる置換後の文字列が返ります。
ひらがなとカタカナを区別しない
Dim str As String = "佐藤,すずき,田中,スズキ,高橋,鈴木"
Dim ret As String
ret = Replace(str, "すずき", "鈴木", 1, -1, CompareMethod.Text)
Console.WriteLine(ret)
佐藤,鈴木,田中,鈴木,高橋,鈴木
「ひらがな」と「カタカナ」を同じ文字列とみなして
置換処理を行う事ができます。
使用するには、Replace関数の第5引数にCompareMethod.Textを指定します。
(第5引数も省略可能です。)
これでテキストモードでの置換処理が行われます。
「ひらがな」と「カタカナ」の他に、
「半角」と「全角」、「大文字」と「小文字」にも対応していますが、
完全ではありません。
※実際に正常に動作するかは必ず動作確認のテストを行ってください。
これで文字列の置換処理ができるようになりました。