8.文字列中から指定の文字を検索する方法色々(39_Str_08) (旧、SampleNo.018) |
1.文字列の先頭から指定の文字を検索し見つかった位置から継続して検索 2.文字列を文末から検索し最初に見つかった位置を取得 3.文字列内に指定の文字がいくつあるか調べる 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.文字列の先頭から指定の文字を検索し見つかった位置から継続して検索 |
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '文字列の先頭から指定の文字を検索し見つかった位置から継続して検索 TextBox1.Text = "ABC123abcabcあいうABC123abcあいうABC123abcあいう" Dim SearchChar As String = "abc" Dim dp, np As Integer Do dp = TextBox1.Text.IndexOf(SearchChar, np) '検索 If dp >= 0 Then '見つかった場合 TextBox1.Select(dp, SearchChar.Length) '見つかった文字を強調表示 'TextBoxBase.HideSelection プロパティ 'テキストボックスコントロールがフォーカスを失った時に '選択されているテキストが強調表示されたままに設定します。 TextBox1.HideSelection = False MessageBox.Show(dp + 1 & " 文字目に見つかりました") TextBox1.HideSelection = True '元に戻す(強調表示をしない) np = dp + SearchChar.Length '見つかった文字の次の位置 Else MessageBox.Show("指定の文字は見つかりませんでした") Exit Do End If Loop End Sub 図1.上記実行結果 |
2.文字列を文末から検索し最初に見つかった位置を取得 |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '文字列を文末から検索し最初に見つかった位置を取得 TextBox1.Text = "ABC123abcabcあいうABC123abcあいうABC123abcあいう" Dim SearchChar As String = "abc" Dim dp As Integer dp = TextBox1.Text.LastIndexOf(SearchChar) '検索 If dp >= 0 Then '見つかった場合 TextBox1.Select(dp, SearchChar.Length) TextBox1.HideSelection = False MessageBox.Show(dp + 1 & " 文字目に見つかりました") '結果 34文字目 TextBox1.HideSelection = True Else MessageBox.Show("指定の文字は見つかりませんでした") End If End Sub |
3.文字列内に指定の文字がいくつあるか調べる |
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click '文字列内に指定の文字がいくつあるか調べる Dim str1 As String = "ABC123abcabcあいうABC123abcあいうABC123abcあいう" Dim str2 As String = "abc" Dim lenN As Integer lenN = str1.Length - str1.Replace(str2, "").Length MessageBox.Show("文字列、[" & str1 & "]" & vbCrLf & "内の中に [" & _ str2 & "] は " & lenN \ str2.Length & " 個 ありました。") Debug.WriteLine((str1.Length - str1.Replace(str2, "").Length) \ str2.Length) '結果 4 End Sub |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |