この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

String.LastIndexOf メソッド (String, StringComparison)

 

公開日: 2016年10月

指定した文字列が現在の String オブジェクト内で最後に見つかった 0 から始まる位置のインデックスをレポートします。 指定した文字列に使用する検索の種類をパラメーターで指定します。

名前空間:   System
アセンブリ:  mscorlib (mscorlib.dll 内)

public int LastIndexOf(
	string value,
	StringComparison comparisonType
)

パラメーター

value
Type: System.String

シークする文字列。

comparisonType
Type: System.StringComparison

検索の規則を指定する列挙値の 1 つ。

戻り値

Type: System.Int32

その文字列が見つかった場合は、value パラメーターの 0 から始まる開始インデックス位置。見つからなかった場合は -1。 valueString.Empty の場合、戻り値はこのインスタンスの最後のインデックス位置です。

Exception Condition
ArgumentNullException

valuenull です。

ArgumentException

comparisonType は有効な System.StringComparison 値ではありません。

インデックス番号は、0 から始まります。 つまり、文字列の最初の文字インデックス 0 の位置は、最後にLength- 1。

comparisonTypeを検索するパラメーターを指定します、valueパラメーター現在またはインバリアント カルチャを使用して、または区別しない検索を使用して、word または序数比較規則を使用します。

検索は、このインスタンスの最後の文字位置から開始され、されるまで、先頭に向かって逆方向に進みますvalueが見つかった最初の文字位置が検査されているか。

呼び出し時の注意:

文字セットには無視できる文字が含まれています。これらの文字は、言語またはカルチャに依存した比較を実行する際には考慮されません。 カルチャに依存する検索の場合 (つまり、optionsStringComparison.Ordinal または StringComparison.OrdinalIgnoreCase でない場合)、value に無視できる文字が含まれていると、その文字を削除して検索した場合と同じ結果になります。 場合value1 つまたは複数の無視できる文字のみで構成されて、LastIndexOfメソッドは常に返しますString.Length– 1 で、現在のインスタンスで最後のインデックス位置を表します。

次の例で、LastIndexOf(String, StringComparison)を 2 つの文字列 (ソフト ハイフン (U +0 00AD)、"n"で後にソフト ハイフンおよびにソフト ハイフンの後に"m") の 3 つの部分文字列を検索するメソッドを使用します。 文字列の 1 つのみにソフト ハイフンが含まれます。 この例を実行している場合、.NET Framework 4またはその後、ソフト ハイフンは無視できる文字であるため、カルチャに依存した検索を返しますと同じ値に検索文字列にソフト ハイフンが含まれていないかどうかには返されます。 ただし、序数に基づく検索を正常に 1 つの文字列ではソフト ハイフンを検索してが存在しないことをレポート 2 番目の文字列から。

using System;

public class Example
{
   public static void Main()
   {
      string s1 = "ani\u00ADmal";
      string s2 = "animal";

      Console.WriteLine("Culture-sensitive comparison:");
      // Use culture-sensitive comparison to find the last soft hyphen.
      Console.WriteLine(s1.LastIndexOf("\u00AD", StringComparison.CurrentCulture));
      Console.WriteLine(s2.LastIndexOf("\u00AD", StringComparison.CurrentCulture));

      // Use culture-sensitive comparison to find the last soft hyphen followed by "n".
      Console.WriteLine(s1.LastIndexOf("\u00ADn", StringComparison.CurrentCulture));
      Console.WriteLine(s2.LastIndexOf("\u00ADn", StringComparison.CurrentCulture));

      // Use culture-sensitive comparison to find the last soft hyphen followed by "m".
      Console.WriteLine(s1.LastIndexOf("\u00ADm", StringComparison.CurrentCulture));
      Console.WriteLine(s2.LastIndexOf("\u00ADm", StringComparison.CurrentCulture));

      Console.WriteLine("Ordinal comparison:");
      // Use ordinal comparison to find the last soft hyphen.
      Console.WriteLine(s1.LastIndexOf("\u00AD", StringComparison.Ordinal));
      Console.WriteLine(s2.LastIndexOf("\u00AD", StringComparison.Ordinal));

      // Use ordinal comparison to find the last soft hyphen followed by "n".
      Console.WriteLine(s1.LastIndexOf("\u00ADn", StringComparison.Ordinal));
      Console.WriteLine(s2.LastIndexOf("\u00ADn", StringComparison.Ordinal));

      // Use ordinal comparison to find the last soft hyphen followed by "m".
      Console.WriteLine(s1.LastIndexOf("\u00ADm", StringComparison.Ordinal));
      Console.WriteLine(s2.LastIndexOf("\u00ADm", StringComparison.Ordinal));
   }
}
// The example displays the following output:
//       6
//       5
//       1
//       1
//       4
//       3
//       Ordinal comparison:
//       3
//       -1
//       -1
//       -1
//       3
//       -1

次の exampledemonstrates 3 つのオーバー ロードが、LastIndexOfの異なる値を使用して別の文字列内の文字列の最後の出現箇所を検索するメソッド、StringComparison列挙します。

// This code example demonstrates the 
// System.String.LastIndexOf(String, ..., StringComparison) methods.

using System;
using System.Threading;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the last occurrence of a character using different " + 
                   "values of StringComparison.";
    string resultFmt = "Comparison: {0,-28} Location: {1,3}";

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
    string CapitalAWithRing = "\u00c5"; 

// Define a string to search. 
// The result of combining the characters LATIN SMALL LETTER A and COMBINING 
// RING ABOVE (U+0061, U+030a) is linguistically equivalent to the character 
// LATIN SMALL LETTER A WITH RING ABOVE (U+00e5).
    string cat = "A Cheshire c" + "\u0061\u030a" + "t";
    int loc = 0;
    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

// Clear the screen and display an introduction.
    Console.Clear();
    Console.WriteLine(intro);

// Display the current culture because culture affects the result. For example, 
// try this code example with the "sv-SE" (Swedish-Sweden) culture.

    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    Console.WriteLine("The current culture is \"{0}\" - {1}.", 
                       Thread.CurrentThread.CurrentCulture.Name,
                       Thread.CurrentThread.CurrentCulture.DisplayName);

// Display the string to search for and the string to search.
    Console.WriteLine("Search for the string \"{0}\" in the string \"{1}\"", 
                       CapitalAWithRing, cat);
    Console.WriteLine();

// Note that in each of the following searches, we look for 
// LATIN CAPITAL LETTER A WITH RING ABOVE in a string that contains 
// LATIN SMALL LETTER A WITH RING ABOVE. A result value of -1 indicates 
// the string was not found.
// Search using different values of StringComparsion. Specify the start 
// index and count. 

    Console.WriteLine("Part 1: Start index and count are specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.LastIndexOf(CapitalAWithRing, cat.Length-1, cat.Length, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparsion. Specify the 
// start index. 
    Console.WriteLine("\nPart 2: Start index is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.LastIndexOf(CapitalAWithRing, cat.Length-1, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparsion. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.LastIndexOf(CapitalAWithRing, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }
    }
}

/*
Note: This code example was executed on a console whose user interface 
culture is "en-US" (English-United States).

This code example produces the following results:

Find the last occurrence of a character using different values of StringComparison.
The current culture is "en-US" - English (United States).
Search for the string "Å" in the string "A Cheshire ca°t"

Part 1: Start index and count are specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 2: Start index is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 3: Neither start index nor count is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

*/

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
2.0 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: