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 确定 Char 是否是基数-10 位数。

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

重要

方法不用于确定字符串是否由数字字符 (例如,通过为字符串字符串中的每个字符调用 IsNumber(String, Int32)) 。 若要确定字符串是否由数值字符组成,请调用方法的重载之一 (如整型或浮点类型的 TryParse Int32.TryParseDouble.TryParse

有效数字是 、 UnicodeCategory.DecimalDigitNumber UnicodeCategory.LetterNumber 或 类别 UnicodeCategory.OtherNumber 的成员。

如果位于 位置的对象是有效代理项对的第一个字符,则 方法将确定 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 确定 Char 是否是基数-10 位数。

重要

方法不用于确定字符串是否由数字字符 (例如,通过为字符串字符串中的每个字符调用 IsNumber(Char)) 。 若要确定字符串是否由数值字符组成,请调用方法的重载之一 (如整型或浮点类型的 TryParse Int32.TryParseDouble.TryParse

有效数字是 、 UnicodeCategory.DecimalDigitNumber UnicodeCategory.LetterNumber 或 类别 UnicodeCategory.OtherNumber 的成员。

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

另请参阅

适用于