String.IndexOfAny メソッド (Char , Int32, Int32)
Unicode 文字の指定した配列内にある文字がこのインスタンスで最初に見つかった位置のインデックスをレポートします。検索は指定した文字位置から開始され、指定した数の文字位置が検査されます。
Overloads Public Function IndexOfAny( _
ByVal anyOf() As Char, _ ByVal startIndex As Integer, _ ByVal count As Integer _) As Integer
[C#]
public int IndexOfAny(char[] anyOf,intstartIndex,intcount);
[C++]
public: int IndexOfAny(__wchar_tanyOf __gc[],intstartIndex,intcount);
[JScript]
public function IndexOfAny(
anyOf : Char[],startIndex : int,count : int) : int;
パラメータ
- anyOf
シークする 1 つ以上の文字を格納している、Unicode 文字の配列。 - startIndex
検索が開始される位置。 - count
検査する文字位置の数。
戻り値
anyOf 内の文字がこのインスタンスで最初に見つかった場所のインデックス位置。 anyOf 内の文字が見つからなかった場合は -1。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | anyOf が null 参照 (Visual Basic では Nothing) です。 |
ArgumentOutOfRangeException | count または startIndex が負の値です。
または count + startIndex が、このインスタンスの文字数を超えています。 |
解説
startIndex から startIndex + count -1 番目の位置まで検索が実行されましたが、 startIndex + count の文字は検出されませんでした。
インデックスの番号付けは 0 から始まります。
anyOf の検索では大文字と小文字が区別されます。
このメソッドは、序数 (カルチャに依存しない) 検索を実行します。この検索方法では、2 つの文字は Unicode スカラ値が等しいときだけ等価と見なされます。カルチャに依存した検索を実行するには、 CompareInfo.IndexOf メソッドを使用します。このメソッドを使用して検索すると、合字の "A" (U+00C6) のような構成済み文字を表す Unicode 値は、'AE' (U+0041, U+0045) のようにその文字の構成要素が正しい順序で出現した場合、これらの構成要素と (カルチャの種類に応じて) 等価と見なされます。
使用例
' Sample for String.IndexOfAny(Char[], Int32, 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
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 'Main
End Class 'Sample
'
'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
'
[C#]
// Sample for String.IndexOfAny(Char[], 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;
string target = "aid";
char[] anyOf = 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)
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
*/
[C++]
// Sample for String::IndexOfAny(Char[], Int32, 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;
int count;
String* target = S"aid";
Char anyOf[] = target->ToCharArray();
start = (str->Length-1)/3;
count = (str->Length-1)/4;
Console::WriteLine();
Console::WriteLine(S"The first character occurrence from position {0} for {1} characters.", __box( start), __box( count));
Console::WriteLine(S"{1}{0}{2}{0}{3}{0}", Environment::NewLine, br1, br2, str);
Console::Write(S"A character in '{0}' occurs at position: ", target);
at = str->IndexOfAny(anyOf, start, count);
if (at > -1)
Console::Write(at);
else
Console::Write(S"(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
*/
[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.IndexOfAny オーバーロードの一覧 | Char | Int32 | Array | IndexOf | LastIndexOf | LastIndexOfAny