訪問して頂きありがとうございます。まさふくろーです。
この記事では、指定した文字列が、文字列内のどの位置にあるかを調べる方法をご紹介します。
指定した文字列が、文字列内のどの位置にあるかを調べる
【1】文字列.IndexOf(検索する文字列)
【2】文字列.IndexOf(検索する文字列, 検索開始位置)
【3】文字列.LastIndexOf(検索する文字列)
解説 |
引数に指定した文字列が存在するかのチェックや、最初に見つかった位置を取得する場合は、【1】【2】どちらでも使用可能です。 |
文字列に含まれるすべての位置を取得するには、【2】を使用します。 |
引数に指定した文字列が、最後に見つかった位置を取得する場合は、【3】を使用します。 |
引数に指定した文字列が現れる位置をInteger型(整数型)の値で返します。 |
位置は「0」から始まります。 |
引数に指定した文字列が見つからなかった場合は、「-1」を返します。 |
サンプルプログラム【1】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim InputString As String Dim SearchString As String Dim i As Integer Dim Pos As Integer InputString = TextBox1.Text SearchString = "@" Pos = InputString.IndexOf(SearchString) If Pos >= 0 Then Label1.Text = InputString.Substring(0, Pos) End If End Sub End Class |
2 | 「ユーザー名(@より前の文字)を取得する」ボタンがクリックされた場合に、以下処理を行う。 |
9 | テキストボックスに入力した値を、文字列型の変数「InputString」に代入。 |
11 | 検索文字列「@」を文字列型の変数「SearchString」に代入。 |
13 | 検索文字列「@」の位置を取得する。 |
15 | 検索文字列「@」が見つかった場合、 |
16 | 先頭から「@」前までの文字を取得し、ラベルに表示する。 |
サンプルプログラム【2】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim InputString As String Dim SearchString As String Dim i As Integer Dim Pos As Integer = 0 InputString = TextBox1.Text SearchString = "@" Label1.Text = String.Empty For i = 0 To InputString.Length - 1 Pos = InputString.IndexOf(SearchString, Pos) If Pos = -1 Then Exit For Else Label1.Text = Label1.Text & Pos + 1 & "文字目" & Space(2) Pos = Pos + 1 End If Next End Sub End Class |
2 | 「@の位置を調べる」ボタンがクリックされた場合に、以下処理を行う。 |
9 | テキストボックスに入力した値を、文字列型の変数「InputString」に代入。 |
11 | 検索文字列「@」を文字列型の変数「SearchString」に代入。 |
15 | テキストボックスに入力した文字数分、以下処理を繰り返す。 |
17 | 検索文字列「@」の位置を取得する。 |
19~20 | 検索文字列「@」が見つからなかった場合は、処理終了。 |
21 | 検索文字列「@」が見つかった場合、 |
22 | ラベルに位置を表示する。(検索開始位置は「0」から開始するので、実際の文字の位置は「Pos + 1」となります。) |
23 | 次の検索文字列「@」の位置を調べるため、検索開始位置を「+1」します。 |
関連記事
最後まで読んでいただき、ありがとうございました!
本のまとめ関連記事はこちら