次の方法で共有


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

指定した文字を検索し、検索対象文字列の指定したインデックスから始まり、指定した数の要素を含んでいる範囲内で、その文字が最初に出現する位置の 0 から始まるインデックス番号を返します。

Overloads Public Overridable Function IndexOf( _
   ByVal source As String, _   ByVal value As Char, _   ByVal startIndex As Integer, _   ByVal count As Integer _) As Integer
[C#]
public virtual int IndexOf(stringsource,charvalue,intstartIndex,intcount);
[C++]
public: virtual int IndexOf(String* source,__wchar_tvalue,intstartIndex,intcount);
[JScript]
public function IndexOf(
   source : String,value : Char,startIndex : int,count : int) : int;

パラメータ

  • source
    検索対象の文字列。
  • value
    source 内で検索する文字。
  • startIndex
    検索の開始位置を示す 0 から始まるインデックス。
  • count
    検索対象の範囲内にある要素の数。

戻り値

startIndex から始まり、count で指定した数の要素を含んでいる source の範囲内で、value が見つかった場合は、最初に見つかった位置の 0 から始まるインデックス番号。それ以外の場合は -1。

例外

例外の種類 条件
ArgumentNullException source が null 参照 (Visual Basic では Nothing) です。
ArgumentOutOfRangeException startIndex が source の有効なインデックスの範囲外の値です。

または

count が 0 未満です。

または

startIndex および count が source 内の有効な部分を指定していません。

解説

検索範囲の文字列内で、検索は startIndex から開始して順方向に進み、 startIndex + count -1 の位置で終了します。

このオーバーロードは、カルチャを考慮した検索を実行します。カルチャによっては、char が合字の 'Æ' (U+00C6) など構成済み文字を表す Unicode 値の場合に、"AE" (U+0041、U+0045) のように正しい順序で出現した構成要素と等価であると見なします。Unicode 値が同じ場合にだけ、ある char と別の char が等価であると見なす番号順 (カルチャを考慮しない) 検索を実行するには、 CompareOptions 値をパラメータとして受け取るオーバーロードのいずれかを使用して、 Ordinal 値を使用します。char を検索する String.IndexOf のオーバーロードは、番号順検索を実行します。文字列を検索するオーバーロードは、カルチャを考慮した検索を実行します。

使用例

[Visual Basic, C#, C++] 次に示すのは、文字列の一部分の、最初と最後に出現する文字または部分文字列のインデックスを調べるコード例です。

 
Imports System
Imports System.Globalization
Imports Microsoft.VisualBasic

Public Class SamplesCompareInfo

   Public Shared Sub Main()

      ' Creates CompareInfo for the InvariantCulture.
      Dim myComp As CompareInfo = CultureInfo.InvariantCulture.CompareInfo

      ' iS is the starting index of the substring.
      Dim [iS] As Integer = 8
      ' iL is the length of the substring.
      Dim iL As Integer = 18
      ' myT1 and myT2 are the strings used for padding.
      Dim myT1 As New [String]("-"c, [iS])
      Dim myT2 As [String]

      ' Searches for the ligature .
      Dim myStr As [String] = "Is AE or ae the same as  or ?"
      myT2 = New [String]("-"c, myStr.Length - [iS] - iL)
      Console.WriteLine()
      Console.WriteLine("Original      : {0}", myStr)
      Console.WriteLine("No options    : {0}{1}{2}", myT1, myStr.Substring([iS], iL), myT2)
      PrintMarker("           AE : ", myComp.IndexOf(myStr, "AE", [iS], iL), myComp.LastIndexOf(myStr, "AE", [iS] + iL - 1, iL))
      PrintMarker("           ae : ", myComp.IndexOf(myStr, "ae", [iS], iL), myComp.LastIndexOf(myStr, "ae", [iS] + iL - 1, iL))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL))
      Console.WriteLine("Ordinal       : {0}{1}{2}", myT1, myStr.Substring([iS], iL), myT2)
      PrintMarker("           AE : ", myComp.IndexOf(myStr, "AE", [iS], iL, CompareOptions.Ordinal), myComp.LastIndexOf(myStr, "AE", [iS] + iL - 1, iL, CompareOptions.Ordinal))
      PrintMarker("           ae : ", myComp.IndexOf(myStr, "ae", [iS], iL, CompareOptions.Ordinal), myComp.LastIndexOf(myStr, "ae", [iS] + iL - 1, iL, CompareOptions.Ordinal))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL, CompareOptions.Ordinal), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL, CompareOptions.Ordinal))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL, CompareOptions.Ordinal), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL, CompareOptions.Ordinal))
      Console.WriteLine("IgnoreCase    : {0}{1}{2}", myT1, myStr.Substring([iS], iL), myT2)
      PrintMarker("           AE : ", myComp.IndexOf(myStr, "AE", [iS], iL, CompareOptions.IgnoreCase), myComp.LastIndexOf(myStr, "AE", [iS] + iL - 1, iL, CompareOptions.IgnoreCase))
      PrintMarker("           ae : ", myComp.IndexOf(myStr, "ae", [iS], iL, CompareOptions.IgnoreCase), myComp.LastIndexOf(myStr, "ae", [iS] + iL - 1, iL, CompareOptions.IgnoreCase))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL, CompareOptions.IgnoreCase), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL, CompareOptions.IgnoreCase))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL, CompareOptions.IgnoreCase), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL, CompareOptions.IgnoreCase))

      ' Searches for the combining character sequence Latin capital letter U with diaeresis or Latin small letter u with diaeresis.
      myStr = "Is " & ChrW(&H0055) & ChrW(&H0308) & " or " & ChrW(&H0075) & ChrW(&H0308) & " the same as " & ChrW(&H00DC) & " or " & ChrW(&H00FC) & "?"
      myT2 = New [String]("-"c, myStr.Length - [iS] - iL)
      Console.WriteLine()
      Console.WriteLine("Original      : {0}", myStr)
      Console.WriteLine("No options    : {0}{1}{2}", myT1, myStr.Substring([iS], iL), myT2)
      PrintMarker("           U" & ChrW(&H0308) & " : ", myComp.IndexOf(myStr, "U" & ChrW(&H0308), [iS], iL), myComp.LastIndexOf(myStr, "U" & ChrW(&H0308), [iS] + iL - 1, iL))
      PrintMarker("           u" & ChrW(&H0308) & " : ", myComp.IndexOf(myStr, "u" & ChrW(&H0308), [iS], iL), myComp.LastIndexOf(myStr, "u" & ChrW(&H0308), [iS] + iL - 1, iL))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL))
      Console.WriteLine("Ordinal       : {0}{1}{2}", myT1, myStr.Substring([iS], iL), myT2)
      PrintMarker("           U" & ChrW(&H0308) & " : ", myComp.IndexOf(myStr, "U" & ChrW(&H0308), [iS], iL, CompareOptions.Ordinal), myComp.LastIndexOf(myStr, "U" & ChrW(&H0308), [iS] + iL - 1, iL, CompareOptions.Ordinal))
      PrintMarker("           u" & ChrW(&H0308) & " : ", myComp.IndexOf(myStr, "u" & ChrW(&H0308), [iS], iL, CompareOptions.Ordinal), myComp.LastIndexOf(myStr, "u" & ChrW(&H0308), [iS] + iL - 1, iL, CompareOptions.Ordinal))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL, CompareOptions.Ordinal), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL, CompareOptions.Ordinal))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL, CompareOptions.Ordinal), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL, CompareOptions.Ordinal))
      Console.WriteLine("IgnoreCase    : {0}{1}{2}", myT1, myStr.Substring([iS], iL), myT2)
      PrintMarker("           U" & ChrW(&H0308) & " : ", myComp.IndexOf(myStr, "U" & ChrW(&H0308), [iS], iL, CompareOptions.IgnoreCase), myComp.LastIndexOf(myStr, "U" & ChrW(&H0308), [iS] + iL - 1, iL, CompareOptions.IgnoreCase))
      PrintMarker("           u" & ChrW(&H0308) & " : ", myComp.IndexOf(myStr, "u" & ChrW(&H0308), [iS], iL, CompareOptions.IgnoreCase), myComp.LastIndexOf(myStr, "u" & ChrW(&H0308), [iS] + iL - 1, iL, CompareOptions.IgnoreCase))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL, CompareOptions.IgnoreCase), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL, CompareOptions.IgnoreCase))
      PrintMarker("             : ", myComp.IndexOf(myStr, ""c, [iS], iL, CompareOptions.IgnoreCase), myComp.LastIndexOf(myStr, ""c, [iS] + iL - 1, iL, CompareOptions.IgnoreCase))

   End Sub 'Main

   Public Shared Sub PrintMarker(Prefix As [String], First As Integer, Last As Integer)

      ' Determines the size of the array to create.
      Dim mySize As Integer
      If Last > First Then
         mySize = Last
      Else
         mySize = First
      End If 

      If mySize > - 1 Then

         ' Creates an array of Char to hold the markers.
         Dim myCharArr(mySize + 1) As [Char]

         ' Inserts the appropriate markers.
         If First > - 1 Then
            myCharArr(First) = "f"c
         End If
         If Last > - 1 Then
            myCharArr(Last) = "l"c
         End If
         If First = Last Then
            myCharArr(First) = "b"c
         End If 

         ' Displays the array of Char as a String.
         Console.WriteLine("{0}{1}", Prefix, New [String](myCharArr))

      Else
         Console.WriteLine(Prefix)

      End If 

   End Sub 'PrintMarker

End Class 'SamplesCompareInfo 


'This code produces the following output.
'
'Original      : Is AE or ae the same as  or ?
'No options    : -------- ae the same as  -----
'           AE :                         b
'           ae :          b
'             :                         b
'             :          b
'Ordinal       : -------- ae the same as  -----
'           AE :
'           ae :          b
'             :                         b
'             :
'IgnoreCase    : -------- ae the same as  -----
'           AE :          f              l
'           ae :          f              l
'             :          f              l
'             :          f              l
'
'Original      : Is U" or u" the same as  or ?
'No options    : -------- u" the same as  -----
'           U" :                         b
'           u" :          b
'             :                         b
'             :          b
'Ordinal       : -------- u" the same as  -----
'           U" :
'           u" :          b
'             :                         b
'             :
'IgnoreCase    : -------- u" the same as  -----
'           U" :          f              l
'           u" :          f              l
'             :          f              l
'             :          f              l


[C#] 
using System;
using System.Globalization;

public class SamplesCompareInfo  {

   public static void Main()  {

      // Creates CompareInfo for the InvariantCulture.
      CompareInfo myComp = CultureInfo.InvariantCulture.CompareInfo;

      // iS is the starting index of the substring.
      int iS = 8;
      // iL is the length of the substring.
      int iL = 18;
      // myT1 and myT2 are the strings used for padding.
      String myT1 = new String( '-', iS );
      String myT2;

      // Searches for the ligature .
      String myStr = "Is AE or ae the same as  or ?";
      myT2 = new String( '-', myStr.Length - iS - iL );
      Console.WriteLine();
      Console.WriteLine( "Original      : {0}", myStr );
      Console.WriteLine( "No options    : {0}{1}{2}", myT1, myStr.Substring( iS, iL ), myT2 );
      PrintMarker( "           AE : ", myComp.IndexOf( myStr, "AE", iS, iL ), myComp.LastIndexOf( myStr, "AE", iS + iL - 1, iL ) );
      PrintMarker( "           ae : ", myComp.IndexOf( myStr, "ae", iS, iL ), myComp.LastIndexOf( myStr, "ae", iS + iL - 1, iL ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL ) );
      Console.WriteLine( "Ordinal       : {0}{1}{2}", myT1, myStr.Substring( iS, iL ), myT2 );
      PrintMarker( "           AE : ", myComp.IndexOf( myStr, "AE", iS, iL, CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, "AE", iS + iL - 1, iL, CompareOptions.Ordinal ) );
      PrintMarker( "           ae : ", myComp.IndexOf( myStr, "ae", iS, iL, CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, "ae", iS + iL - 1, iL, CompareOptions.Ordinal ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL, CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL, CompareOptions.Ordinal ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL, CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL, CompareOptions.Ordinal ) );
      Console.WriteLine( "IgnoreCase    : {0}{1}{2}", myT1, myStr.Substring( iS, iL ), myT2 );
      PrintMarker( "           AE : ", myComp.IndexOf( myStr, "AE", iS, iL, CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, "AE", iS + iL - 1, iL, CompareOptions.IgnoreCase ) );
      PrintMarker( "           ae : ", myComp.IndexOf( myStr, "ae", iS, iL, CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, "ae", iS + iL - 1, iL, CompareOptions.IgnoreCase ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL, CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL, CompareOptions.IgnoreCase ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL, CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL, CompareOptions.IgnoreCase ) );

      // Searches for the combining character sequence Latin capital letter U with diaeresis or Latin small letter u with diaeresis.
      myStr = "Is \u0055\u0308 or \u0075\u0308 the same as \u00DC or \u00FC?";
      myT2 = new String( '-', myStr.Length - iS - iL );
      Console.WriteLine();
      Console.WriteLine( "Original      : {0}", myStr );
      Console.WriteLine( "No options    : {0}{1}{2}", myT1, myStr.Substring( iS, iL ), myT2 );
      PrintMarker( "           U\u0308 : ", myComp.IndexOf( myStr, "U\u0308", iS, iL ), myComp.LastIndexOf( myStr, "U\u0308", iS + iL - 1, iL ) );
      PrintMarker( "           u\u0308 : ", myComp.IndexOf( myStr, "u\u0308", iS, iL ), myComp.LastIndexOf( myStr, "u\u0308", iS + iL - 1, iL ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL ) );
      Console.WriteLine( "Ordinal       : {0}{1}{2}", myT1, myStr.Substring( iS, iL ), myT2 );
      PrintMarker( "           U\u0308 : ", myComp.IndexOf( myStr, "U\u0308", iS, iL, CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, "U\u0308", iS + iL - 1, iL, CompareOptions.Ordinal ) );
      PrintMarker( "           u\u0308 : ", myComp.IndexOf( myStr, "u\u0308", iS, iL, CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, "u\u0308", iS + iL - 1, iL, CompareOptions.Ordinal ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL, CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL, CompareOptions.Ordinal ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL, CompareOptions.Ordinal ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL, CompareOptions.Ordinal ) );
      Console.WriteLine( "IgnoreCase    : {0}{1}{2}", myT1, myStr.Substring( iS, iL ), myT2 );
      PrintMarker( "           U\u0308 : ", myComp.IndexOf( myStr, "U\u0308", iS, iL, CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, "U\u0308", iS + iL - 1, iL, CompareOptions.IgnoreCase ) );
      PrintMarker( "           u\u0308 : ", myComp.IndexOf( myStr, "u\u0308", iS, iL, CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, "u\u0308", iS + iL - 1, iL, CompareOptions.IgnoreCase ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL, CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL, CompareOptions.IgnoreCase ) );
      PrintMarker( "             : ", myComp.IndexOf( myStr, '', iS, iL, CompareOptions.IgnoreCase ), myComp.LastIndexOf( myStr, '', iS + iL - 1, iL, CompareOptions.IgnoreCase ) );

   }

   public static void PrintMarker( String Prefix, int First, int Last )  {

      // Determines the size of the array to create.
      int mySize;
      if ( Last > First )
         mySize = Last;
      else
         mySize = First;

      if ( mySize > -1 )  {

         // Creates an array of Char to hold the markers.
         Char[] myCharArr = new Char[mySize+1];

         // Inserts the appropriate markers.
         if ( First > -1 )
         myCharArr[First] = 'f';
         if ( Last > -1 )
            myCharArr[Last] = 'l';
         if ( First == Last )
         myCharArr[First] = 'b';

         // Displays the array of Char as a String.
         Console.WriteLine( "{0}{1}", Prefix, new String( myCharArr ) );

      }
      else
         Console.WriteLine( Prefix );

   }

}


/*
This code produces the following output.

Original      : Is AE or ae the same as  or ?
No options    : -------- ae the same as  -----
           AE :                         b
           ae :          b
             :                         b
             :          b
Ordinal       : -------- ae the same as  -----
           AE :
           ae :          b
             :                         b
             :
IgnoreCase    : -------- ae the same as  -----
           AE :          f              l
           ae :          f              l
             :          f              l
             :          f              l

Original      : Is U" or u" the same as  or ?
No options    : -------- u" the same as  -----
           U" :                         b
           u" :          b
             :                         b
             :          b
Ordinal       : -------- u" the same as  -----
           U" :
           u" :          b
             :                         b
             :
IgnoreCase    : -------- u" the same as  -----
           U" :          f              l
           u" :          f              l
             :          f              l
             :          f              l

*/

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Globalization;

void PrintMarker( String* Prefix, int First, int Last )  {

   // Determines the size of the array to create.
   int mySize;
   if ( Last > First )
      mySize = Last;
   else
      mySize = First;

   if ( mySize > -1 )  {

      // Creates an array of Char to hold the markers.
      Char myCharArr[] = new Char[mySize+1];

      // Inserts the appropriate markers.
      if ( First > -1 )
         myCharArr[First] = 'f';
      if ( Last > -1 )
         myCharArr[Last] = 'l';
      if ( First == Last )
         myCharArr[First] = 'b';

      // Displays the array of Char as a String.
      Console::WriteLine( S"{0}{1}", Prefix, new String( myCharArr ) );

   }
   else
      Console::WriteLine( Prefix );

}

int main()  {

   // Creates CompareInfo for the InvariantCulture.
   CompareInfo* myComp = CultureInfo::InvariantCulture->CompareInfo;

   // iS is the starting index of the substring.
   int iS = 8;
   // iL is the length of the substring.
   int iL = 18;
   // myT1 and myT2 are the strings used for padding.
   String* myT1 = new String( '-', iS );
   String* myT2;

   // Searches for the ligature ニ.
   String* myStr = S"Is AE or ae the same as ニ or ・";
   myT2 = new String( '-', myStr->Length - iS - iL );
   Console::WriteLine();
   Console::WriteLine( S"Original      : {0}", myStr );
   Console::WriteLine( S"No options    : {0}{1}{2}", myT1, myStr->Substring( iS, iL ), myT2 );
   PrintMarker( S"           AE : ", myComp->IndexOf( myStr, S"AE", iS, iL ), myComp->LastIndexOf( myStr, S"AE", iS + iL - 1, iL ) );
   PrintMarker( S"           ae : ", myComp->IndexOf( myStr, S"ae", iS, iL ), myComp->LastIndexOf( myStr, S"ae", iS + iL - 1, iL ) );
   PrintMarker( S"            ニ : ", myComp->IndexOf( myStr, L'ニ', iS, iL ), myComp->LastIndexOf( myStr, L'ニ', iS + iL - 1, iL ) );
   PrintMarker( S"            ・: ", myComp->IndexOf( myStr, L'・, iS, iL ), myComp->LastIndexOf( myStr, L'・, iS + iL - 1, iL ) );
   Console::WriteLine( S"Ordinal       : {0}{1}{2}", myT1, myStr->Substring( iS, iL ), myT2 );
   PrintMarker( S"           AE : ", myComp->IndexOf( myStr, S"AE", iS, iL, CompareOptions::Ordinal ), myComp->LastIndexOf( myStr, S"AE", iS + iL - 1, iL, CompareOptions::Ordinal ) );
   PrintMarker( S"           ae : ", myComp->IndexOf( myStr, S"ae", iS, iL, CompareOptions::Ordinal ), myComp->LastIndexOf( myStr, S"ae", iS + iL - 1, iL, CompareOptions::Ordinal ) );
   PrintMarker( S"            ニ : ", myComp->IndexOf( myStr, L'ニ', iS, iL, CompareOptions::Ordinal ), myComp->LastIndexOf( myStr, L'ニ', iS + iL - 1, iL, CompareOptions::Ordinal ) );
   PrintMarker( S"            ・: ", myComp->IndexOf( myStr, L'・, iS, iL, CompareOptions::Ordinal ), myComp->LastIndexOf( myStr, L'・, iS + iL - 1, iL, CompareOptions::Ordinal ) );
   Console::WriteLine( S"IgnoreCase    : {0}{1}{2}", myT1, myStr->Substring( iS, iL ), myT2 );
   PrintMarker( S"           AE : ", myComp->IndexOf( myStr, S"AE", iS, iL, CompareOptions::IgnoreCase ), myComp->LastIndexOf( myStr, S"AE", iS + iL - 1, iL, CompareOptions::IgnoreCase ) );
   PrintMarker( S"           ae : ", myComp->IndexOf( myStr, S"ae", iS, iL, CompareOptions::IgnoreCase ), myComp->LastIndexOf( myStr, S"ae", iS + iL - 1, iL, CompareOptions::IgnoreCase ) );
   PrintMarker( S"            ニ : ", myComp->IndexOf( myStr, L'ニ', iS, iL, CompareOptions::IgnoreCase ), myComp->LastIndexOf( myStr, L'ニ', iS + iL - 1, iL, CompareOptions::IgnoreCase ) );
   PrintMarker( S"            ・: ", myComp->IndexOf( myStr, L'・, iS, iL, CompareOptions::IgnoreCase ), myComp->LastIndexOf( myStr, L'・, iS + iL - 1, iL, CompareOptions::IgnoreCase ) );

   // Searches for the combining character sequence Latin capital letter U with diaeresis or Latin small letter u with diaeresis.
   myStr = S"Is U\u0308 or u\u0308 the same as \u00DC or \u00FC?";
   myT2 = new String( '-', myStr->Length - iS - iL );
   Console::WriteLine();
   Console::WriteLine( S"Original      : {0}", myStr );
   Console::WriteLine( S"No options    : {0}{1}{2}", myT1, myStr->Substring( iS, iL ), myT2 );
   PrintMarker( S"           U\u0308 : ", myComp->IndexOf( myStr, S"U\u0308", iS, iL ), myComp->LastIndexOf( myStr, S"U\u0308", iS + iL - 1, iL ) );
   PrintMarker( S"           u\u0308 : ", myComp->IndexOf( myStr, S"u\u0308", iS, iL ), myComp->LastIndexOf( myStr, S"u\u0308", iS + iL - 1, iL ) );
   PrintMarker( S"            ワ : ", myComp->IndexOf( myStr, L'ワ', iS, iL ), myComp->LastIndexOf( myStr, L'ワ', iS + iL - 1, iL ) );
   PrintMarker( S"            ・: ", myComp->IndexOf( myStr, L'・, iS, iL ), myComp->LastIndexOf( myStr, L'・, iS + iL - 1, iL ) );
   Console::WriteLine( S"Ordinal       : {0}{1}{2}", myT1, myStr->Substring( iS, iL ), myT2 );
   PrintMarker( S"           U\u0308 : ", myComp->IndexOf( myStr, S"U\u0308", iS, iL, CompareOptions::Ordinal ), myComp->LastIndexOf( myStr, S"U\u0308", iS + iL - 1, iL, CompareOptions::Ordinal ) );
   PrintMarker( S"           u\u0308 : ", myComp->IndexOf( myStr, S"u\u0308", iS, iL, CompareOptions::Ordinal ), myComp->LastIndexOf( myStr, S"u\u0308", iS + iL - 1, iL, CompareOptions::Ordinal ) );
   PrintMarker( S"            ワ : ", myComp->IndexOf( myStr, L'ワ', iS, iL, CompareOptions::Ordinal ), myComp->LastIndexOf( myStr, L'ワ', iS + iL - 1, iL, CompareOptions::Ordinal ) );
   PrintMarker( S"            ・: ", myComp->IndexOf( myStr, L'・, iS, iL, CompareOptions::Ordinal ), myComp->LastIndexOf( myStr, L'・, iS + iL - 1, iL, CompareOptions::Ordinal ) );
   Console::WriteLine( S"IgnoreCase    : {0}{1}{2}", myT1, myStr->Substring( iS, iL ), myT2 );
   PrintMarker( S"           U\u0308 : ", myComp->IndexOf( myStr, S"U\u0308", iS, iL, CompareOptions::IgnoreCase ), myComp->LastIndexOf( myStr, S"U\u0308", iS + iL - 1, iL, CompareOptions::IgnoreCase ) );
   PrintMarker( S"           u\u0308 : ", myComp->IndexOf( myStr, S"u\u0308", iS, iL, CompareOptions::IgnoreCase ), myComp->LastIndexOf( myStr, S"u\u0308", iS + iL - 1, iL, CompareOptions::IgnoreCase ) );
   PrintMarker( S"            ワ : ", myComp->IndexOf( myStr, L'ワ', iS, iL, CompareOptions::IgnoreCase ), myComp->LastIndexOf( myStr, L'ワ', iS + iL - 1, iL, CompareOptions::IgnoreCase ) );
   PrintMarker( S"            ・: ", myComp->IndexOf( myStr, L'・, iS, iL, CompareOptions::IgnoreCase ), myComp->LastIndexOf( myStr, L'・, iS + iL - 1, iL, CompareOptions::IgnoreCase ) );

}

/*
This code produces the following output.

Original      : Is AE or ae the same as ニ or ・
No options    : -------- ae the same as ニ -----
           AE :                         b
           ae :          b
            ニ :                         b
            ・:          b
Ordinal       : -------- ae the same as ニ -----
           AE :
           ae :          b
            ニ :                         b
            ・:
IgnoreCase    : -------- ae the same as ニ -----
           AE :          f              l
           ae :          f              l
            ニ :          f              l
            ・:          f              l

Original      : Is U" or u" the same as ワ or ・
No options    : -------- u" the same as ワ -----
           U" :                         b
           u" :          b
            ワ :                         b
            ・:          b
Ordinal       : -------- u" the same as ワ -----
           U" :
           u" :          b
            ワ :                         b
            ・:
IgnoreCase    : -------- u" the same as ワ -----
           U" :          f              l
           u" :          f              l
            ワ :          f              l
            ・:          f              l

*/

[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

参照

CompareInfo クラス | CompareInfo メンバ | System.Globalization 名前空間 | CompareInfo.IndexOf オーバーロードの一覧 | LastIndexOf