String.IndexOfAny メソッド

定義

指定した Unicode 文字配列内の任意の文字のこのインスタンスで最初に出現するインデックスを報告します。 配列内の文字がこのインスタンスで見つからない場合、メソッドは -1 を返します。

オーバーロード

名前 説明
IndexOfAny(Char[])

指定した Unicode 文字配列内の任意の文字のこのインスタンスで最初に出現した位置の 0 から始まるインデックスを報告します。

IndexOfAny(Char[], Int32)

指定した Unicode 文字配列内の任意の文字のこのインスタンスで最初に出現した位置の 0 から始まるインデックスを報告します。 検索は、指定した文字位置から開始されます。

IndexOfAny(Char[], Int32, Int32)

指定した Unicode 文字配列内の任意の文字のこのインスタンスで最初に出現した位置の 0 から始まるインデックスを報告します。 検索は、指定した文字位置から開始し、指定した文字数の位置を調べます。

IndexOfAny(Char[])

ソース:
String.Searching.cs
ソース:
String.Searching.cs
ソース:
String.Searching.cs
ソース:
String.Searching.cs
ソース:
String.Searching.cs

指定した Unicode 文字配列内の任意の文字のこのインスタンスで最初に出現した位置の 0 から始まるインデックスを報告します。

public:
 int IndexOfAny(cli::array <char> ^ anyOf);
public int IndexOfAny(char[] anyOf);
member this.IndexOfAny : char[] -> int
Public Function IndexOfAny (anyOf As Char()) As Integer

パラメーター

anyOf
Char[]

シークする 1 つ以上の文字を含む Unicode 文字配列。

返品

anyOf内の任意の文字が見つかった、このインスタンスで最初に出現する位置の 0 から始まるインデックス位置。anyOfの文字が見つからなかった場合に -1。

例外

anyOfnullです。

次の例では、文字列内の最初の母音を検索します。

char[] chars = { 'a', 'e', 'i', 'o', 'u', 'y',
                 'A', 'E', 'I', 'O', 'U', 'Y' };
String s = "The long and winding road...";
Console.WriteLine($"""
   The first vowel in
   '{s}'
   is found at index {s.IndexOfAny(chars)}
   """);

// The example displays the following output:
//       The first vowel in
//       'The long and winding road...'
//       is found at index 2
let chars = [| 'a'; 'e'; 'i'; 'o'; 'u'; 'y'
               'A'; 'E'; 'I'; 'O'; 'U'; 'Y' |]
let s = "The long and winding road..."
printfn $"The first vowel in \n   {s}\nis found at index {s.IndexOfAny chars}"

// The example displays the following output:
//       The first vowel in
//          The long and winding road...
//       is found at index 2
Module Example1
   Public Sub Run()
      Dim chars() As Char = { "a"c, "e"c, "i"c, "o"c, "u"c, "y"c,
                              "A"c, "E"c, "I"c, "O"c, "U"c, "Y"c }
      Dim s As String = "The long and winding road..."
      Console.WriteLine("The first vowel in {2}   {0}{2}is found at index {1}",
                        s, s.IndexOfAny(chars), vbCrLf)
   End Sub
End Module

' The example displays the following output:
'       The first vowel in
'          The long and winding road...
'       is found at index 2

注釈

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

anyOfの検索では、大文字と小文字が区別されます。 anyOfが空の配列の場合、メソッドは -1 を返します。

このメソッドは序数 (カルチャに依存しない) 検索を実行します。この検索では、Unicode スカラー値が同じ場合にのみ、文字が別の文字と同等と見なされます。 カルチャに依存する検索を実行するには、 CompareInfo.IndexOf メソッドを使用します。ここで、合字 "Æ" (U+00C6) などの事前計算済み文字を表す Unicode スカラー値は、カルチャに応じて、"AE" (U+0041、U+0045) などの正しいシーケンス内の文字のコンポーネントの出現と同等と見なされる場合があります。

こちらもご覧ください

適用対象

IndexOfAny(Char[], Int32)

ソース:
String.Searching.cs
ソース:
String.Searching.cs
ソース:
String.Searching.cs
ソース:
String.Searching.cs
ソース:
String.Searching.cs

指定した Unicode 文字配列内の任意の文字のこのインスタンスで最初に出現した位置の 0 から始まるインデックスを報告します。 検索は、指定した文字位置から開始されます。

public:
 int IndexOfAny(cli::array <char> ^ anyOf, int startIndex);
public int IndexOfAny(char[] anyOf, int startIndex);
member this.IndexOfAny : char[] * int -> int
Public Function IndexOfAny (anyOf As Char(), startIndex As Integer) As Integer

パラメーター

anyOf
Char[]

シークする 1 つ以上の文字を含む Unicode 文字配列。

startIndex
Int32

検索開始位置。

返品

anyOf内の任意の文字が見つかった、このインスタンスで最初に出現する位置の 0 から始まるインデックス位置。anyOfの文字が見つからなかった場合に -1。

例外

anyOfnullです。

startIndex が負の値です。

-又は-

startIndex がこのインスタンスの文字数を超えています。

次の例では、文字列 "is" の任意の文字が別の文字列の部分文字列内で出現するインデックスを検索します。

string br1 = "0----+----1----+----2----+----3" +
    "----+----4----+----5----+----6----+-";
string br2 = "012345678901234567890123456789" +
    "0123456789012345678901234567890123456";
string str = "Now is the time for all good men " +
    "to come to the aid of their party.";
int start;
int at;
string target = "is";
char[] anyOf = target.ToCharArray();

start = str.Length / 2;
Console.WriteLine();
Console.WriteLine("The first character occurrence " +
    $"from position {start} to {str.Length - 1}:");
Console.WriteLine($"""
    {Environment.NewLine}{br1}{Environment.NewLine}
    {br2}{Environment.NewLine}{str}{Environment.NewLine}
    """);
Console.Write($"A character in '{target}' occurs at position: ");

at = str.IndexOfAny(anyOf, start);
if (at > -1)
    Console.Write(at);
else
    Console.Write("(not found)");
Console.WriteLine();

/*

The first character occurrence from position 33 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.

A character in 'is' occurs at position: 49

*/
// Sample for String.IndexOfAny(Char[], Int32)
open System

let br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-"
let br2 = "0123456789012345678901234567890123456789012345678901234567890123456"
let str = "Now is the time for all good men to come to the aid of their party."
let target = "is"
let anyOf = target.ToCharArray()

let start = str.Length/2
printfn $"\nThe first character occurrence from position {start} to {str.Length - 1}."
printfn $"{br1}{Environment.NewLine}{br2}{Environment.NewLine}{str}{Environment.NewLine}"
printf $"A character in '{target}' occurs at position: "

let at = str.IndexOfAny(anyOf, start)
if at > -1 then
    printfn $"{at}"
else
    printfn "(not found)"
(*

The first character occurrence from position 33 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.

A character in 'is' occurs at position: 49

*)
' Sample for String.IndexOfAny(Char[], Int32)
Class Example2
   Public Shared Sub Run()
      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
      Dim target As String = "is"
      Dim anyOf As Char() = target.ToCharArray()

      start = str.Length / 2
      Console.WriteLine()
      Console.WriteLine("Search for a character occurrence from position {0} to {1}.", _
                           start, str.Length - 1)
      Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str)
      Console.Write("A character in '{0}' occurs at position: ", target)
      at = str.IndexOfAny(anyOf, start)
      If at > - 1 Then
         Console.Write(at)
      Else
         Console.Write("(not found)")
      End If
      Console.WriteLine()
   End Sub
End Class
'
'
'Search for a character occurrence from position 33 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.
'
'A character in 'is' occurs at position: 49
'

注釈

インデックス番号は 0 から始まります。 startIndex パラメーターの範囲は、0 から文字列インスタンスの長さより 1 未満です。

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

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

このメソッドは序数 (カルチャに依存しない) 検索を実行します。この検索では、Unicode スカラー値が同じ場合にのみ、文字が別の文字と同等と見なされます。 カルチャに依存する検索を実行するには、 CompareInfo.IndexOf メソッドを使用します。ここで、合字 "Æ" (U+00C6) などの事前計算済み文字を表す Unicode スカラー値は、カルチャに応じて、"AE" (U+0041、U+0045) などの正しいシーケンス内の文字のコンポーネントの出現と同等と見なされる場合があります。

こちらもご覧ください

適用対象

IndexOfAny(Char[], Int32, Int32)

ソース:
String.Searching.cs
ソース:
String.Searching.cs
ソース:
String.Searching.cs
ソース:
String.Searching.cs
ソース:
String.Searching.cs

指定した Unicode 文字配列内の任意の文字のこのインスタンスで最初に出現した位置の 0 から始まるインデックスを報告します。 検索は、指定した文字位置から開始し、指定した文字数の位置を調べます。

public:
 int IndexOfAny(cli::array <char> ^ anyOf, int startIndex, int count);
public int IndexOfAny(char[] anyOf, int startIndex, int count);
member this.IndexOfAny : char[] * int * int -> int
Public Function IndexOfAny (anyOf As Char(), startIndex As Integer, count As Integer) As Integer

パラメーター

anyOf
Char[]

シークする 1 つ以上の文字を含む Unicode 文字配列。

startIndex
Int32

検索開始位置。

count
Int32

検査する文字位置の数。

返品

anyOf内の任意の文字が見つかった、このインスタンスで最初に出現する位置の 0 から始まるインデックス位置。anyOfの文字が見つからなかった場合に -1。

例外

anyOfnullです。

count または startIndex が負の値です。

-又は-

count + startIndex がこのインスタンスの文字数を超えています。

次の例では、別の文字列の部分文字列内で文字列 "aid" の任意の文字が出現するインデックスを検索します。

string br1 = "0----+----1----+----2----+----3----" +
    "+----4----+----5----+----6----+-";
string br2 = "012345678901234567890123456789" +
    "0123456789012345678901234567890123456";
string str = "Now is the time for all good men " +
    "to come to the aid of their party.";
string target = "aid";
char[] anyOf = target.ToCharArray();

int start = (str.Length - 1) / 3;
int count = (str.Length - 1) / 4;
Console.WriteLine();
Console.WriteLine("The first character occurrence from " +
    $"position {start} for {count} characters:");
Console.WriteLine($"""
    {Environment.NewLine}{br1}{Environment.NewLine}{br2}
    {Environment.NewLine}{str}{Environment.NewLine}
    """);
Console.Write($"A character in '{target}' occurs at position: ");

int at = str.IndexOfAny(anyOf, start, count);
if (at > -1)
    Console.Write(at);
else
    Console.Write("(not found)");
Console.WriteLine();

/*

The first character occurrence from position 22 for 16 characters.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

A character in 'aid' occurs at position: 27

*/
// Sample for String.IndexOfAny(Char[], Int32, Int32)
open System

let br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-"
let br2 = "0123456789012345678901234567890123456789012345678901234567890123456"
let str = "Now is the time for all good men to come to the aid of their party."
let target = "aid"
let anyOf = target.ToCharArray()

let start = (str.Length - 1) / 3
let count = (str.Length - 1) / 4
printfn $"\nThe first character occurrence from position {start} for {count} characters."
printfn $"{br1}{Environment.NewLine}{br2}{Environment.NewLine}{str}{Environment.NewLine}"
printf $"A character in '{target}' occurs at position: "

let at = str.IndexOfAny(anyOf, start, count)
if at > -1 then
    printfn $"{at}"
else
    printfn "(not found)"
(*

The first character occurrence from position 22 for 16 characters.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

A character in 'aid' occurs at position: 27

*)
' Sample for String.IndexOfAny(Char[], Int32, Int32)
Class Example3
   Public Shared Sub Run()
      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
      Dim count As Integer
      Dim target As String = "aid"
      Dim anyOf As Char() = target.ToCharArray()

      start =(str.Length - 1) / 3
      count =(str.Length - 1) / 4
      Console.WriteLine()
      Console.WriteLine("The first character occurrence from position {0} for {1} characters.", start, count)
      Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str)
      Console.Write("A character in '{0}' occurs at position: ", target)

      at = str.IndexOfAny(anyOf, start, count)
      If at > - 1 Then
         Console.Write(at)
      Else
         Console.Write("(not found)")
      End If
      Console.WriteLine()
   End Sub
End Class
'
'The first character occurrence from position 22 for 16 characters.
'0----+----1----+----2----+----3----+----4----+----5----+----6----+-
'0123456789012345678901234567890123456789012345678901234567890123456
'Now is the time for all good men to come to the aid of their party.
'
'A character in 'aid' occurs at position: 27
'

注釈

検索は startIndex から始まり、-1 の startIndex + count に進みます。 startIndex + countの文字は検索に含まれません。

インデックス番号は 0 から始まります。 startIndex パラメーターの範囲は、0 から文字列インスタンスの長さより 1 未満です。

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

このメソッドは序数 (カルチャに依存しない) 検索を実行します。この検索では、Unicode スカラー値が同じ場合にのみ、文字が別の文字と同等と見なされます。 カルチャに依存する検索を実行するには、 CompareInfo.IndexOf メソッドを使用します。ここで、合字 "Æ" (U+00C6) などの事前計算済み文字を表す Unicode スカラー値は、カルチャに応じて、"AE" (U+0041、U+0045) などの正しいシーケンス内の文字のコンポーネントの出現と同等と見なされる場合があります。

こちらもご覧ください

適用対象