このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

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

指定された文字列がこのインスタンス内で最後に見つかった 0 から始まるインデックス位置をレポートします。 検索は指定された文字位置から開始し、文字列の開始に向かって後方に移動し、文字位置の指定された数だけ行われます。

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

public int LastIndexOf(
	string value,
	int startIndex,
	int count
)

パラメーター

value
型 : System.String
シークする文字列。
startIndex
型 : System.Int32
検索が開始される位置。 検索は、このインスタンスの先頭に向かって startIndex から開始されます。
count
型 : System.Int32
検査する文字位置の数。

戻り値

型 : System.Int32
これがない場合、または現在のインスタンスが String.Emptyに等しい場合、その文字列がある場合 value のインデックス番号が 0 から始まるの開始インデックス位置、または -1。 valueEmpty の場合、戻り値は、startIndex かこのインスタンスの最後のインデックス位置のいずれか小さい方です。

例外条件
ArgumentNullException

valuenull なので、

ArgumentOutOfRangeException

count が負の値です。

または

現在のインスタンスが String.Empty と等しくなく、startIndex が負です。

または

現在のインスタンスが String.Empty と等しくなく、startIndex がこのインスタンスの長さを超えています。

または

現在のインスタンスが String.Empty と等しくなく、startIndex - count + 1 が、このインスタンス内に存在しない位置を示しています。

または

現在のインスタンスが String.Empty と等しく、start が -1 より小さいか 0 より大きい値です。

または

現在のインスタンスが String.Empty と等しく、count が 1 より大きい値です。

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

この検索は、インスタンスの startIndex の文字位置から開始し、value が見つかるか、count 個目の文字位置に到達するまで、インスタンスの先頭へ向かって逆方向に検索を実行します。 たとえば、startIndexLength - 1 の場合、このメソッドは文字列の最後の文字から count 文字を逆方向に検索します。

このメソッドは、現在のカルチャを使用して、単語 (大文字/小文字を区別し、カルチャに依存した) 検索を実行します。

文字セットには無視できる文字が含まれています。これらの文字は、言語またはカルチャに依存した比較を実行する際には考慮されません。 カルチャに依存した検索では、value に無視できる文字が含まれている場合、その文字を削除して検索した場合と同じ結果になります。 value が一つ以上の無視できる文字のみで構成されている場合は、検索の開始文字位置である LastIndexOf のメソッドは startIndexを常に返します。 次の例ではソフト ハイフン (U+00AD) の位置を特定するために、2 番目の文字列の最後の「m」の前にある 2 文字の LastIndexOf のメソッドが使用されます。 文字列の 1 つのみに必要な部分文字列が含まれます。 例に .NET Framework 4 以降で実行すると、カルチャに依存した比較を実行するときにソフト ハイフンが無視できる文字であるため、ほとんどの場合、メソッドは文字列「m」のインデックス。 "m" の後にソフト ハイフンが含まれる最初の文字列の場合、メソッドはソフト ハイフンのインデックスを返すことができず、代わりに "m" のインデックスを返すことに注意してください。


using System;

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

      // Find the index of the soft hyphen.
      position = s1.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)
         Console.WriteLine(s1.LastIndexOf("\u00AD", position, position + 1));

      position = s2.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)   
         Console.WriteLine(s2.LastIndexOf("\u00AD", position, position + 1));

      // Find the index of the soft hyphen followed by "n".
      position = s1.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)
         Console.WriteLine(s1.LastIndexOf("\u00ADn", position, position + 1));

      position = s2.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)   
         Console.WriteLine(s2.LastIndexOf("\u00ADn", position, position + 1));

      // Find the index of the soft hyphen followed by "m".
      position = s1.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)
         Console.WriteLine(s1.LastIndexOf("\u00ADm", position, position + 1));

      position = s2.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)   
         Console.WriteLine(s2.LastIndexOf("\u00ADm", position, position + 1));
   }
}
// The example displays the following output:
//       'm' at position 4
//       4
//       'm' at position 3
//       3
//       'm' at position 4
//       1
//       'm' at position 3
//       1
//       'm' at position 4
//       4
//       'm' at position 3
//       3


呼び出し時の注意

.NET Framework で文字列を使用するためのベスト プラクティス」で説明しているように、既定値を代入する文字列比較メソッドの呼び出さず、代わりにパラメーターを明示的に指定する必要があるメソッドを呼び出すことをお勧めします。 現在のカルチャの文字列比較規則を使用してこの操作を実行するには、その comparisonType パラメーターの StringComparison.CurrentCulture の値で LastIndexOf(String, Int32, Int32, StringComparison) メソッド オーバーロードを呼び出します。

部分文字列の最後から先頭に向かって特定の文字列を検索し、そのすべてのインデックス位置を取得する例を次に示します。


// Sample for String.LastIndexOf(String, Int32, Int32)
using System;

class Sample {
    public static void Main() {

    string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-";
    string br2 = "0123456789012345678901234567890123456789012345678901234567890123456";
    string str = "Now is the time for all good men to come to the aid of their party.";
    int start;
    int at;
    int count;
    int end;

    start = str.Length-1;
    end = start/2 - 1;
    Console.WriteLine("All occurrences of 'he' from position {0} to {1}.", start, end);
    Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
    Console.Write("The string 'he' occurs at position(s): ");

    count = 0;
    at = 0;
    while((start > -1) && (at > -1))
        {
        count = start - end; //Count must be within the substring.
        at = str.LastIndexOf("he", start, count);
        if (at > -1) 
            {
            Console.Write("{0} ", at);
            start = at - 1;
            }
        }
    Console.Write("{0}{0}{0}", Environment.NewLine);
    }
}
/*
This example produces the following results:
All occurrences of 'he' from position 66 to 32.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

The string 'he' occurs at position(s): 56 45
*/


.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

追加
表示:
© 2015 Microsoft