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

String.LastIndexOf メソッド (Char)

 

公開日: 2016年10月

このインスタンス内で最後に出現する指定 Unicode 文字の 0 から始まるインデックス位置をレポートします。

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

public int LastIndexOf(
	char value
)

パラメーター

value
Type: System.Char

シークする Unicode 文字。

戻り値

Type: System.Int32

その文字が見つかった場合は、value の 0 から始まるインデックスでの位置。見つからなかった場合は -1。

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

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

このメソッドが文字と見なされる別の文字と等価の Unicode のスカラー値が同じ場合にのみ、序数 (カルチャに依存しない) 検索を実行します。 カルチャに依存した検索を実行するには使用、 CompareInfo.LastIndexOf 場所のような文字「Æ」合字 (U + 00 C 6) を表す Unicode スカラー値が等価と見なさ"AE"など、正しい順序での文字の構成要素の出現したメソッド (u+0041、u+0045)、カルチャによって異なります。

次の例、 ExtractFilename を使用するメソッド、 LastIndexOf(Char) 文字列の最後のディレクトリの区切り記号を検索して、文字列のファイル名を抽出する方法です。 ファイルが存在する場合は、そのパスを含まないファイル名を返します。

using System;
using System.IO;

public class TestLastIndexOf
{
   public static void Main()
   {
      string filename;

      filename = ExtractFilename(@"C:\temp\");
      Console.WriteLine("{0}", String.IsNullOrEmpty(filename) ? "<none>" : filename);

      filename = ExtractFilename(@"C:\temp\delegate.txt"); 
      Console.WriteLine("{0}", String.IsNullOrEmpty(filename) ? "<none>" : filename);

      filename = ExtractFilename("delegate.txt");      
      Console.WriteLine("{0}", String.IsNullOrEmpty(filename) ? "<none>" : filename);

      filename = ExtractFilename(@"C:\temp\notafile.txt");
      Console.WriteLine("{0}", String.IsNullOrEmpty(filename) ? "<none>" : filename);
   }

   public static string ExtractFilename(string filepath)
   {
      // If path ends with a "\", it's a path only so return String.Empty.
      if (filepath.Trim().EndsWith(@"\"))
         return String.Empty;

      // Determine where last backslash is.
      int position = filepath.LastIndexOf('\\');
      // If there is no backslash, assume that this is a filename.
      if (position == -1)
      {
         // Determine whether file exists in the current directory.
         if (File.Exists(Environment.CurrentDirectory + Path.DirectorySeparatorChar + filepath)) 
            return filepath;
         else
            return String.Empty;
      }
      else
      {
         // Determine whether file exists using filepath.
         if (File.Exists(filepath))
            // Return filename without file path.
            return filepath.Substring(position + 1);
         else
            return String.Empty;
      }
   }
}

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