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

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

 

指定した文字列が現在の String オブジェクト内で最後に見つかった 0 から始まる位置のインデックスをレポートします。検索は、指定された文字位置から開始され、文字列の先頭に向かって逆方向に進みます。指定した文字列を検索するときに実行する比較の種類をパラメーターで指定します。

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

public int LastIndexOf(
	string value,
	int startIndex,
	StringComparison comparisonType
)

パラメーター

value

シークする文字列。

startIndex

検索が開始される位置。検索は、このインスタンスの先頭に向かって startIndex から開始されます。

comparisonType

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

戻り値

Type: System.Int32

その文字列が見つかった場合は、value パラメーターの 0 から始まる開始インデックス位置。見つからなかった場合、または現在のインスタンスが String.Empty と等しい場合は -1。 valueString.Empty の場合、戻り値は startIndex かこのインスタンスの最後のインデックス位置のいずれか小さい方です。

Exception Condition
ArgumentNullException

valuenull です。

ArgumentOutOfRangeException

現在のインスタンスと等しくない String.Empty, 、および startIndex が 0 未満か、現在のインスタンスの長さより大きい。

または

現在のインスタンスが等しい String.Empty, 、および startIndex が 0 より大きいかそれ-1 よりも小さいです。

ArgumentException

comparisonType 無効な System.StringComparison 値。

インデックス番号は 0 から開始します。つまり、インデックス 0 は、文字列の最初の文字と、最後にある Length - 1 です。

検索を開始、 startIndex 文字の位置とするまでの旧バージョンとの収益 value が見つかった最初の文字位置を調査されてまたはします。たとえば場合、 startIndexLength - 1、メソッドは、先頭に文字列で、最後の文字からのすべての文字を検索します。

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

呼び出し元へのメモ:

文字セットには無視できる文字が含まれています。これらの文字は、言語またはカルチャに依存した比較を実行する際には考慮されません。カルチャに依存する検索の場合 (つまり、comparisonTypeStringComparison.Ordinal または StringComparison.OrdinalIgnoreCase でない場合)、value に無視できる文字が含まれていると、その文字を削除して検索した場合と同じ結果になります。場合 value だけが 1 つまたは複数の無視できる文字で構成されて、 LastIndexOf(String, Int32, StringComparison) メソッドは常を返します。 startIndex, 、これは、検索を開始する文字の位置。

次の例で、 LastIndexOf(String, Int32, StringComparison) メソッドは、"m"、"m"で 2 つの文字列の最後の開始後にソフト ハイフン (u 00AD) の位置を検索するために使用します。文字列の 1 つのみに必要な部分文字列が含まれます。例を実行する場合、 .NET Framework 4 か後で、どちらの場合も、ソフト ハイフンは無視できる文字の場合は、あるため、メソッドが返されます文字列では、"m"のインデックス、カルチャに依存した比較を実行するときにします。"m" の後にソフト ハイフンが含まれる最初の文字列の場合、メソッドはソフト ハイフンのインデックスを返すことができず、代わりに "m" のインデックスを返すことに注意してください。このメソッドは、序数に基づく比較を実行したときのみ、最初の文字列に含まれるソフト ハイフンのインデックスを返します。

using System;

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

      position = s1.LastIndexOf('m');
      if (position >= 0) {
         Console.WriteLine(s1.LastIndexOf(searchString, position, StringComparison.CurrentCulture));
         Console.WriteLine(s1.LastIndexOf(searchString, position, StringComparison.Ordinal));
      }

      position = s2.LastIndexOf('m');
      if (position >= 0) {
         Console.WriteLine(s2.LastIndexOf(searchString, position, StringComparison.CurrentCulture));
         Console.WriteLine(s2.LastIndexOf(searchString, position, StringComparison.Ordinal));
      }
   }
}
// The example displays the following output:
//       4
//       3
//       3
//       -1

次の例での次の 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

*/

Universal Windows Platform
4.5 から利用可能
.NET Framework
2.0 から利用可能
Portable Class Library
サポート対象 : portable .NET platforms
Silverlight
2.0 から利用可能
Windows Phone Silverlight
7.0 から利用可能
Windows Phone
8.1 から利用可能
トップに戻る
表示:
© 2016 Microsoft