Char.IsNumber メソッド

定義

Unicode 文字が数値として分類されるかどうかを示します。

オーバーロード

名前 説明
IsNumber(Char)

指定した Unicode 文字が数値として分類されるかどうかを示します。

IsNumber(String, Int32)

指定した文字列内の指定した位置にある文字が数値として分類されるかどうかを示します。

IsNumber(Char)

ソース:
Char.cs
ソース:
Char.cs
ソース:
Char.cs
ソース:
Char.cs
ソース:
Char.cs

指定した 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 文字。

返品

true cが数値の場合は。それ以外の場合はfalse

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

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 カテゴリであるかどうかを判断します。 数字には、数字に加えて、文字、分数、下付き文字、上付き文字、ローマ数字、通貨分子、および囲まれた数字が含まれます。 このメソッドは、IsDigitが基数 10 桁であるかどうかを決定するChar メソッドとは対照的です。

Important

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

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

IsNumber(Char)メソッドは、cが 1 つの言語文字に対応し、その文字が数値を表しているかどうかを確認することを前提としています。 ただし、Unicode 標準の一部の数値は、サロゲート ペアを形成する 2 つの Char オブジェクトによって表されます。 たとえば、エーゲ海番号システムは、コード ポイント U+10107 から U+10133 で構成されます。 次の例では、 ConvertFromUtf32 メソッドを使用して、GEON 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

こちらもご覧ください

適用対象

IsNumber(String, Int32)

ソース:
Char.cs
ソース:
Char.cs
ソース:
Char.cs
ソース:
Char.cs
ソース:
Char.cs

指定した文字列内の指定した位置にある文字が数値として分類されるかどうかを示します。

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で評価する文字の位置。

返品

true index内の位置s文字が数値の場合はfalse

例外

snullです。

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

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

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 カテゴリであるかどうかを判断します。 数字には、数字に加えて、文字、分数、下付き文字、上付き文字、ローマ数字、通貨分子、および囲まれた数字が含まれます。 このメソッドは、IsDigitが基数 10 桁であるかどうかを決定するChar メソッドとは対照的です。

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

Important

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

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

位置Charindexオブジェクトが有効なサロゲート ペアの最初の文字である場合、IsNumber(String, Int32)メソッドは、サロゲート ペアが数値の数字を形成するかどうかを判断します。 たとえば、エーゲ海番号システムは、コード ポイント U+10107 から U+10133 で構成されます。 次の例では、 ConvertFromUtf32 メソッドを使用して、GEON NUMBER ONE を表す文字列をインスタンス化します。 この例の出力に示すように、 メソッドは、高いサロゲートが 1 番目の名前に渡された場合、を返します。 ただし、低サロゲートが渡された場合、下位サロゲートのカテゴリのみが考慮され、 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

こちらもご覧ください

適用対象