Char.IsNumber Metoda

Definicja

Wskazuje, czy znak Unicode jest kategoryzowany jako liczba.

Przeciążenia

IsNumber(String, Int32)

Wskazuje, czy znak w określonej pozycji w określonym ciągu jest kategoryzowany jako liczba.

IsNumber(Char)

Wskazuje, czy określony znak Unicode jest kategoryzowany jako liczba.

IsNumber(String, Int32)

Wskazuje, czy znak w określonej pozycji w określonym ciągu jest kategoryzowany jako liczba.

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

Parametry

s
String

Ciąg.

index
Int32

Pozycja znaku do oceny w s .

Zwraca

Boolean

true Jeśli znak w pozycji index w jest liczbą; w przeciwnym s razie false .

Wyjątki

index jest mniejsze niż zero lub większe niż ostatnia pozycja w s .

Przykłady

W poniższym przykładzie pokazano 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

Uwagi

Ta metoda określa, czy typ należy Char do żadnej liczbowej kategorii Unicode. Oprócz cyfr, liczby obejmują znaki, ułamki, indeksy dolny, indeksy najgłębsze, cyfry łaciński, liczniki walut i cyfry pojemne. Ta metoda jest przeciwieńszna metodzie , która określa, czy IsDigit jest to Char cyfra radix-10.

Pozycje znaku w ciągu są indeksowane począwszy od zera.

Ważne

Metoda nie służy do określania, czy ciąg składa się ze znaków liczbowych (na przykład przez wywołanie metody dla IsNumber(String, Int32) każdego znaku w ciągu). Aby określić, czy ciąg składa się ze znaków liczbowych, wywołaj jedno z przeciążeń metody (na przykład typ całkowitoliczbowy lub TryParse Int32.TryParse Double.TryParse zmiennoprzecinkowy).

Prawidłowe liczby są członkami UnicodeCategory.DecimalDigitNumber kategorii UnicodeCategory.LetterNumber , lub UnicodeCategory.OtherNumber .

Jeśli obiekt w pozycji jest pierwszym znakiem prawidłowej pary zastępczej, metoda określa, czy para surogatów tworzy Char index IsNumber(String, Int32) cyfrę liczbową. Na przykład system numeracji Morza Egejskiego składa się z kodów znaku U+10107 do U+10133. W poniższym przykładzie użyto metody , aby utworzyć wystąpienia ConvertFromUtf32 ciągu reprezentującego NUMER 1 w funkcji NUMER 1. Jak pokazano w danych wyjściowych z przykładu, metoda zwraca wartość , jeśli przekazano jej wysoką IsNumber(String, Int32) true surogat NUMER 1 w tabeli NUMER 1. Jeśli jednak zostanie przekazany niski surogat, uwzględnia tylko kategorię niskiego surogatu i zwraca wartość 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

Zobacz też

Dotyczy

IsNumber(Char)

Wskazuje, czy określony znak Unicode jest kategoryzowany jako liczba.

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

Parametry

c
Char

Znak Unicode do oceny.

Zwraca

Boolean

true jeśli c jest liczbą; w przeciwnym razie false .

Przykłady

W poniższym przykładzie pokazano 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

Uwagi

Ta metoda określa, czy typ należy Char do żadnej liczbowej kategorii Unicode. Oprócz cyfr cyfr, cyfry obejmują znaki, ułamki, indeksy dolny, indeksy nasłone, cyfry Przemysł, liczniki walut i cyfry pogrupowane. Ta metoda kontrastuje z metodą , która określa, czy IsDigit jest to Char cyfra radix-10.

Ważne

Metoda nie służy do określania, czy ciąg składa się ze znaków liczbowych (na przykład przez wywołanie metody dla IsNumber(Char) każdego znaku w ciągu). Aby określić, czy ciąg składa się ze znaków liczbowych, wywołaj jedno z przeciążeń metody (na przykład lub typu całkowitego lub TryParse Int32.TryParse Double.TryParse zmiennoprzecinkowego.

Prawidłowe liczby są członkami UnicodeCategory.DecimalDigitNumber kategorii UnicodeCategory.LetterNumber , lub UnicodeCategory.OtherNumber .

Metoda IsNumber(Char) zakłada, że c odpowiada on pojedynczemu znakowi językowemu i sprawdza, czy ten znak reprezentuje liczbę. Jednak niektóre liczby w standardzie Unicode są reprezentowane przez dwa Char obiekty, które tworzą parę zastępczą. Na przykład system numeracji Morza Egejskiego składa się z kodów znaku U+10107 do U+10133. W poniższym przykładzie użyto metody , aby utworzyć wystąpienia ciągu ConvertFromUtf32 reprezentującego NUMER 1 WN1. Jak pokazują dane wyjściowe z przykładu, metoda zwraca wartość , jeśli przekazano jej wysoki surogat lub niski IsNumber(Char) false surogat tego znaku.

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

Zobacz też

Dotyczy