文字列中の文字を末尾から検索するには .LastIndexOf()、.LastIndexOfAny()を使用します。
1種類の文字を検索するには、.LastIndexOf()を、
複数のいずれかの文字を検索するには、.LastIndexOfAny() を使用します。
構文
.LastIndexOf構文
int <位置> = <対象文字列>.LastIndexOf(<文字列> [,<開始位置> [, <文字数>]])
.LastIndexOfAny構文
int <位置> = <対象文字列>.LastIndexOfAny(<Char配列> [,<開始位置> [, <文字数>]])
LastIndexOfAnyの場合はChar配列で複数文字を指定します。(string配列はNGです)
サンプル
例1)文字列末尾から文字を検索する(.LastIndexOf)
//対象文字列
string str = "東京名古屋大阪東京名古屋大阪";
//「東京」の位置を末尾から検索する
int result1 = str.LastIndexOf("東京");
//「仙台」の位置を検索する
int result2 = str.LastIndexOf("仙台");
//「東京」の位置を7文字目~先頭の間で検索する
int result3 = str.LastIndexOf("東京", 6, 7);
結果
result1 → 7
result2 → -1
result3 → 0
例2)文字列末尾から文字を検索する(.LastIndexOfAny)
//対象文字列
string str = "東京名古屋大阪東京名古屋大阪";
//「名」または「大」の位置を末尾から検索する
char[] arr1 = { '名', '大' };
int result1 = str.LastIndexOfAny(arr1);
//「名」または「大」の位置を7文字目~先頭の間で末尾から検索する
char[] arr2 = { '名', '大' };
int result2 = str.LastIndexOfAny(arr2, 6, 7);
//「仙」または「広」の位置を末尾から検索する
char[] arr3 = { '仙', '広' };
int result3 = str.LastIndexOfAny(arr3);
結果
result1 → 12
result2 → 5
result3 → -1
備考
- 戻り値の値は、1文字目を0から数えたインデックス値です。
- 指定した文字が見つからない場合は -1が返ります。