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

如果 true 中位于 index 的字符是一个数字,则为 s;否则为 false

例外

s 上声明的默认值为 null

index 小于零或大于 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 类别。 除了包括数字外,数字还包括字符、分数、下标、上标、罗马数字、货币分子和包围数字。 此方法与 IsDigit 该方法形成对比,该方法确定 a Char 是否为弧度-10 位。

字符串中的字符位置从零开始编制索引。

重要

此方法 IsNumber(String, Int32) 不旨在通过调用字符串) 中每个字符的方法来确定字符串是否包含数字字符 (。 若要确定字符串是否包含数字字符,请调用方法的TryParse重载之一 (,例如Int32.TryParseDouble.TryParse整数或浮点类型。

有效数字是或UnicodeCategory.LetterNumberUnicodeCategory.OtherNumber类别的成员UnicodeCategory.DecimalDigitNumber

Char如果位于位置index的对象是有效代理项对的第一个字符,则IsNumber(String, Int32)该方法确定代理项对是否构成数字数字。 例如,爱琴海编号系统由代码点 U+10107 到 U+10133 组成。 下面的示例使用 ConvertFromUtf32 该方法实例化表示爱琴海第一号的字符串。 如示例的输出所示,如果该方法传递了爱琴海第一号的高代理项,则 IsNumber(String, Int32) 返回 true 该方法。 但是,如果传递低代理项,则只考虑低代理项的类别并返回 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 类别。 除了包括数字外,数字还包括字符、分数、下标、上标、罗马数字、货币分子和包围数字。 此方法与 IsDigit 该方法形成对比,该方法确定 a Char 是否为弧度-10 位。

重要

此方法 IsNumber(Char) 不旨在通过调用字符串) 中每个字符的方法来确定字符串是否包含数字字符 (。 若要确定字符串是否包含数字字符,请调用方法的TryParse重载之一 (,例如Int32.TryParseDouble.TryParse整数或浮点类型。

有效数字是或UnicodeCategory.LetterNumberUnicodeCategory.OtherNumber类别的成员UnicodeCategory.DecimalDigitNumber

该方法 IsNumber(Char) 假定对应于 c 单个语言字符,并检查该字符是否表示数字。 但是,Unicode 标准中的某些数字由构成代理项对的两 Char 个对象表示。 例如,爱琴海编号系统由代码点 U+10107 到 U+10133 组成。 下面的示例使用 ConvertFromUtf32 该方法实例化表示爱琴海第一号的字符串。 如示例的输出所示,如果方法传递了高代理项或此字符的低代理项,则 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

另请参阅

适用于