Char.IsNumber メソッド

定義

Unicode 文字が数字かどうかを示します。

オーバーロード

IsNumber(String, Int32)

指定した文字列の指定位置にある文字が数字かどうかを示します。

IsNumber(Char)

指定された Unicode 文字が数字かどうかを示します。

IsNumber(String, Int32)

指定した文字列の指定位置にある文字が数字かどうかを示します。

public:
 static bool IsNumber(System::String ^ s, int index);
public static bool IsNumber (string s, int index);
static member IsNumber : string * int -> bool
Public Shared Function IsNumber (s As String, index As Integer) As Boolean

パラメーター

s
String

文字列。

index
Int32

s 内の評価する文字の位置。

戻り値

Boolean

sindex の位置にある文字が数字である場合は true。それ以外の場合は false

例外

snullです。

index が 0 未満の値か、s の最後の位置より大きい値です。

次の例は、を示して IsNumber います。

using namespace System;
int main()
{
   String^ str =  "non-numeric";
   Console::WriteLine( Char::IsNumber( '8' ) ); // Output: "True"
   Console::WriteLine( Char::IsNumber( str, 3 ) ); // Output: "False"
}
using System;

public class IsNumberSample {
    public static void Main() {
        string str = "non-numeric";

        Console.WriteLine(Char.IsNumber('8'));		// Output: "True"
        Console.WriteLine(Char.IsNumber(str, 3));	// Output: "False"
    }
}
open System

let str = "non-numeric"

printfn $"{Char.IsNumber '8'}"      // Output: "True"
printfn $"{Char.IsNumber(str, 3)}"  // Output: "False"
Module IsNumberSample
    Sub Main()
        Dim str As String
        str = "non-numeric"

        Console.WriteLine(Char.IsNumber("8"c))      ' Output: "True"
        Console.WriteLine(Char.IsNumber(str, 3))    ' Output: "False"
    End Sub
End Module

注釈

このメソッド Char は、が任意の数値 Unicode カテゴリであるかどうかを判断します。 数字に加え、数字、分数、添字、上付き文字、ローマ数字、通貨分子、encircled 番号などが含まれます。 このメソッドは、 IsDigit Char が基数10の数字であるかどうかを判断するメソッドとは対照的です。

文字列内の文字位置は0から始まるインデックスが作成されます。

重要

メソッドは、 IsNumber(String, Int32) 文字列が数字で構成されているかどうかを判断するためのものではありません (たとえば、文字列内の各文字に対してメソッドを呼び出すことによって)。 文字列が数値で構成されているかどうかを判断するには、メソッドのいずれかのオーバーロード TryParse ( Int32.TryParse Double.TryParse 整数型または浮動小数点型の、など) を呼び出します。

有効な数値は UnicodeCategory.DecimalDigitNumber 、、 UnicodeCategory.LetterNumber 、またはカテゴリのメンバーです UnicodeCategory.OtherNumber

Char位置にあるオブジェクト index が有効なサロゲートペアの最初の文字である場合、メソッドは、 IsNumber(String, Int32) サロゲートペアが数字を形成するかどうかを判断します。 たとえば、Aegean ナンバリングシステムは、コードポイント U + 10107 から U + 10133 で構成されます。 次の例では、メソッドを使用し ConvertFromUtf32 て、AEGEAN NUMBER ONE を表す文字列をインスタンス化します。 この例の出力が示すように、 IsNumber(String, Int32) true AEGEAN NUMBER の上位サロゲートが渡された場合、メソッドはを返します。 ただし、下位サロゲートを渡すと、下位サロゲートのカテゴリのみが考慮され、が返さ false れます。

int utf32 = 0x10107;      // AEGEAN NUMBER ONE
string surrogate = Char.ConvertFromUtf32(utf32);
for (int ctr = 0; ctr < surrogate.Length; ctr++)
   Console.WriteLine("U+{0:X4} at position {1}: {2}",
                     Convert.ToUInt16(surrogate[ctr]), ctr,
                     Char.IsNumber(surrogate, ctr));
// The example displays the following output:
//       U+D800 at position 0: True
//       U+DD07 at position 1: False
let utf32 = 0x10107      // AEGEAN NUMBER ONE
let surrogate = Char.ConvertFromUtf32 utf32
for i = 0 to surrogate.Length - 1 do
    printfn $"U+{Convert.ToUInt16 surrogate[i]:X4} at position {i}: {Char.IsNumber(surrogate, i)}"
                    
// The example displays the following output:
//       U+D800 at position 0: True
//       U+DD07 at position 1: False
Dim utf32 As Integer = &h10107      ' AEGEAN NUMBER ONE
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For ctr As Integer = 0 To surrogate.Length - 1
   Console.WriteLine("U+{0:X4} at position {1}: {2}", 
                     Convert.ToUInt16(surrogate(ctr)), ctr,  
                     Char.IsNumber(surrogate, ctr))
Next
' The example displays the following output:
'       U+D800 at position 0: True
'       U+DD07 at position 1: False

こちらもご覧ください

適用対象

IsNumber(Char)

指定された Unicode 文字が数字かどうかを示します。

public:
 static bool IsNumber(char c);
public static bool IsNumber (char c);
static member IsNumber : char -> bool
Public Shared Function IsNumber (c As Char) As Boolean

パラメーター

c
Char

評価する Unicode 文字。

戻り値

Boolean

true が数字である場合は c。それ以外の場合は false

次の例は、を示して IsNumber います。

using namespace System;
int main()
{
   String^ str =  "non-numeric";
   Console::WriteLine( Char::IsNumber( '8' ) ); // Output: "True"
   Console::WriteLine( Char::IsNumber( str, 3 ) ); // Output: "False"
}
using System;

public class IsNumberSample {
    public static void Main() {
        string str = "non-numeric";

        Console.WriteLine(Char.IsNumber('8'));		// Output: "True"
        Console.WriteLine(Char.IsNumber(str, 3));	// Output: "False"
    }
}
open System

let str = "non-numeric"

printfn $"{Char.IsNumber '8'}"      // Output: "True"
printfn $"{Char.IsNumber(str, 3)}"  // Output: "False"
Module IsNumberSample
    Sub Main()
        Dim str As String
        str = "non-numeric"

        Console.WriteLine(Char.IsNumber("8"c))      ' Output: "True"
        Console.WriteLine(Char.IsNumber(str, 3))    ' Output: "False"
    End Sub
End Module

注釈

このメソッド Char は、が任意の数値 Unicode カテゴリであるかどうかを判断します。 数字に加え、数字、分数、添字、上付き文字、ローマ数字、通貨分子、encircled 番号などが含まれます。 このメソッドは、 IsDigit Char が基数10の数字であるかどうかを判断するメソッドとは対照的です。

重要

メソッドは、 IsNumber(Char) 文字列が数字で構成されているかどうかを判断するためのものではありません (たとえば、文字列内の各文字に対してメソッドを呼び出すことによって)。 文字列が数値で構成されているかどうかを判断するには、メソッドのいずれかのオーバーロード TryParse ( Int32.TryParse Double.TryParse 整数型または浮動小数点型の、など) を呼び出します。

有効な数値は UnicodeCategory.DecimalDigitNumber 、、 UnicodeCategory.LetterNumber 、またはカテゴリのメンバーです UnicodeCategory.OtherNumber

メソッドは、 IsNumber(Char)c 1 つの言語文字に対応し、その文字が数値を表しているかどうかをチェックします。 ただし、Unicode 規格の一部の数値は、 Char サロゲートペアを形成する2つのオブジェクトによって表されます。 たとえば、Aegean ナンバリングシステムは、コードポイント U + 10107 から U + 10133 で構成されます。 次の例では、メソッドを使用し ConvertFromUtf32 て、AEGEAN NUMBER ONE を表す文字列をインスタンス化します。 この例の出力結果が示すように、 IsNumber(Char) false この文字の上位サロゲートまたは下位サロゲートが渡された場合、メソッドはを返します。

int utf32 = 0x10107;      // AEGEAN NUMBER ONE
string surrogate = Char.ConvertFromUtf32(utf32);
foreach (var ch in surrogate)
   Console.WriteLine("U+{0:X4}: {1}", Convert.ToUInt16(ch),
                                    Char.IsNumber(ch));

// The example displays the following output:
//       U+D800: False
//       U+DD07: False
let utf32 = 0x10107      // AEGEAN NUMBER ONE
let surrogate = Char.ConvertFromUtf32 utf32
for ch in surrogate do
    printfn $"U+{Convert.ToUInt16 ch:X4}: {Char.IsNumber ch}"

// The example displays the following output:
//       U+D800: False
//       U+DD07: False
Dim utf32 As Integer = &h10107      ' AEGEAN NUMBER ONE
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For Each ch In surrogate
   Console.WriteLine("U+{0:X4}: {1}", Convert.ToUInt16(ch), 
                                    Char.IsNumber(ch))
Next
' The example displays the following output:
'       U+D800: False
'       U+DD07: False

こちらもご覧ください

適用対象