Char.IsNumber 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指示 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
中要计算的字符的位置。
返回
如果 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.TryParse 或 Double.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 字符。
返回
如果 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.TryParse 或 Double.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