Tips - Visual Basic

【TOP】

文字列の検索と置換
System.String クラスの IndexOf メソッドと Replace メソッドを使って文字列の検索と置換をしてみます。
IndexOfメソッド、ReplaceメソッドはVisual Basic固有の関数、それぞれInstr関数、Mid関数とよく似た機能を持ちます。
ただ、Instr 関数の戻り値は 1 から始まるのに対し、IndexOf メソッドの戻り値は 0 から始まります。
したがって、n 文字目という表現をする場合は、IndexOfメソッドの戻り値に 1 を加算する必要があります。
IndexOf メソッドは検索文字列が見つからない場合は -1 を、検索対象文字列が String.Empty の場合は 0 を返します。
検索対象文字列が Nothing の場合は ArgumentNullException が発生します。
文字列の末尾から検索する場合は LastIndexOf メソッドを用います。
また、Mid 関数の部分文字列取得には Substring メソッドを用います。
Sub Main() '検索対象文字列を標準入力から入力 Console.Write("検索対象文字列:") Dim strInString As String = Console.ReadLine() '検索文字列を標準入力から入力 Console.Write("検索文字列:") Dim strSrchString As String = Console.ReadLine() '文字列の検索 If strInString.IndexOf(strSrchString) >= 0 Then Dim intIndex As Integer = strInString.IndexOf(strSrchString) Console.WriteLine("文字列「" & strSrchString & "」を発見しました。") Console.WriteLine("内、最初に出現するのは" & (intIndex + 1).ToString() & "文字目です。") Console.WriteLine("発見した全ての「" & strSrchString & "」を「#」に置換します。") '文字列の置換(発見した全ての検索文字列を「#」に置換します。) strInString = strInString.Replace(strSrchString, "#") Console.WriteLine("置換後の文字列は以下の通りです。") Console.WriteLine(strInString) Else Console.WriteLine("文字列「" & strSrchString & "」は見つかりませんでした。") End If End Sub
上記コードを実行すると次のように出力されます。
検索対象文字列には「aaabbbcccAAABBBCCCdefBbghibbbbjklmn」検索文字列には「bb」を入力するものとします。
検索対象文字列:aaabbbcccAAABBBCCCdefBbghibbbbjklmn 検索文字列:bb 文字列「bb」を発見しました。 内、最初に出現するのは4文字目です。 発見した全ての「bb」を「#」に置換します。 置換後の文字列は以下の通りです。 aaa#bcccAAABBBCCCdefBbghi##jklmn
念のため、文字列が見つからなかった場合の結果も示します。
検索対象文字列:aaabbbcccAAABBBCCCdefBbghibbbbjklmn 検索文字列:z 文字列「z」は見つかりませんでした。
【戻る】