データ操作

[C#] 文字列中の文字を末尾から検索する(.LastIndexOf、.LastIndexOfAny)

文字列中の文字を末尾から検索するには .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が返ります。

関連記事

-データ操作
-