
文字列の中に指定文字が何文字目にあるか調べることはできますか?



IndexOfメソッドを利用することで、文字列が最初に現れる位置を取得することができます。
目次
指定文字の位置を調べる
Stringオブジェクトの「IndexOf」メソッドを利用することで、指定文字が文字列内の何もじめにあるかを取得することができます。存在した場合、最初に現れる位置をInt型で返します。見つからなかった場合は「-1」を返します。
文字列.IndexOf(指定文字)
第二引数を指定することで、検索開始位置を指定することができます。
これを利用して、ループ関数を仕様し、2つ目、3つ目の指定文字を探すことも可能です。
文字列.IndexOf(指定文字, 検索開始位置)
以下のサンプルでは、ループを利用し、複数箇所の指定文字を検出を行います。
string moji = "カエルぴょこぴょこむぴょこぴょこ";
List<int> lstIndex = new List<int>();
int index = -1;
while ((true))
{
index = moji.IndexOf("ぴょこ", index + 1);
if ((index == -1))
{
break;
}
lstIndex.Add(index);
}
foreach (var x in lstIndex)
{
MessageBox.Show(x.ToString());
}Dim moji As String = "カエルぴょこぴょこむぴょこぴょこ"
Dim lstIndex As New List(Of Integer)
Dim index As Integer = -1
While (True)
index = moji.IndexOf("ぴょこ", index + 1)
If (index = -1) Then
Exit While
End If
lstIndex.Add(index)
End While
For Each x In lstIndex
MessageBox.Show(x.ToString())
Next3
6
10
13Microsoft Learnの解説
Microsoft Learn
String.IndexOf メソッド (System)
このインスタンス内で指定した Unicode 文字または文字列が最初に出現した場合の 0 から始まるインデックスを報告します。 このメソッドは、このインスタンスで文字または…

