次の方法で共有


String.IndexOf メソッド (Char, Int32)

指定した Unicode 文字がこのインスタンス内で最初に見つかった位置のインデックスをレポートします。検索は、指定した文字位置から開始されます。

Overloads Public Function IndexOf( _
   ByVal value As Char, _   ByVal startIndex As Integer _) As Integer
[C#]
public int IndexOf(charvalue,intstartIndex);
[C++]
public: int IndexOf(__wchar_tvalue,intstartIndex);
[JScript]
public function IndexOf(
   value : Char,startIndex : int) : int;

パラメータ

  • value
    シークする Unicode 文字。
  • startIndex
    検索が開始される位置。

戻り値

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

例外

例外の種類 条件
ArgumentOutOfRangeException startIndex が 0 未満か、インスタンスの末尾を越えた位置を指定しています。

解説

インデックスの番号付けは 0 から始まります。

検索範囲は startIndex から文字列の末尾までです。

value の検索では大文字と小文字が区別されます。

このメソッドは、序数 (カルチャに依存しない) 検索を実行します。この検索方法では、2 つの文字は Unicode スカラ値が等しいときだけ等価と見なされます。カルチャに依存した検索を実行するには、 CompareInfo.IndexOf メソッドを使用します。このメソッドを使用して検索すると、合字の "A" (U+00C6) のような構成済み文字を表す Unicode 値は、'AE' (U+0041, U+0045) のようにその文字の構成要素が正しい順序で出現した場合、これらの構成要素と (カルチャの種類に応じて) 等価と見なされます。

使用例

[Visual Basic, C#, C++] IndexOf メソッドの例を次に示します。

 
' Sample for String.IndexOf(Char, Int32)
Imports System

Class Sample
   Public Shared Sub Main()
      
      Dim br1 As String = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-"
      Dim br2 As String = "0123456789012345678901234567890123456789012345678901234567890123456"
      Dim str As String = "Now is the time for all good men to come to the aid of their party."
      Dim start As Integer
      Dim at As Integer
      
      Console.WriteLine()
      Console.WriteLine("All occurrences of 't' from position 0 to {0}.", str.Length - 1)
      Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str)
      Console.Write("The letter 't' occurs at position(s): ")
      
      at = 0
      start = 0
      While start < str.Length AndAlso at > - 1
         at = str.IndexOf("t"c, start)
         If at = - 1 Then
            Exit While
         End If
         Console.Write("{0} ", at)
         start = at + 1
      End While
      Console.WriteLine()
   End Sub 'Main
End Class 'Sample
'
'This example produces the following results:
'
'All occurrences of 't' from position 0 to 66.
'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 letter 't' occurs at position(s): 7 11 33 41 44 55 64
'
'

[C#] 
// Sample for String.IndexOf(Char, 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;

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

    at = 0;
    start = 0; 
    while((start < str.Length) && (at > -1))
        {
        at = str.IndexOf('t', start);
        if (at == -1) break;
        Console.Write("{0} ", at);
        start = at+1;
        }
    Console.WriteLine();
    }
}
/*
This example produces the following results:

All occurrences of 't' from position 0 to 66.
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 letter 't' occurs at position(s): 7 11 33 41 44 55 64

*/

[C++] 
// Sample for String::IndexOf(Char, Int32)
#using <mscorlib.dll>

using namespace System;

int main() {

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

   Console::WriteLine();
   Console::WriteLine(S"All occurrences of 't' from position 0 to {0}.", __box( str->Length-1));
   Console::WriteLine(S"{1}{0}{2}{0}{3}{0}", Environment::NewLine, br1, br2, str);
   Console::Write(S"The letter 't' occurs at position(s): ");

   at = 0;
   start = 0;
   while((start < str->Length) && (at > -1)) {
      at = str->IndexOf('t', start);
      if (at == -1) break;
      Console::Write(S"{0} ", __box( at));
      start = at+1;
   }
   Console::WriteLine();
}
/*
This example produces the following results:

All occurrences of 't' from position 0 to 66.
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 letter 't' occurs at position(s): 7 11 33 41 44 55 64

*/

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

String クラス | String メンバ | System 名前空間 | String.IndexOf オーバーロードの一覧 | Int32 | Char | IndexOfAny | LastIndexOf | LastIndexOfAny