Char.IsNumber Metodo

Definizione

Indica se un carattere Unicode è categorizzato come numero.

Overload

Nome Descrizione
IsNumber(Char)

Indica se il carattere Unicode specificato è categorizzato come numero.

IsNumber(String, Int32)

Indica se il carattere in corrispondenza della posizione specificata in una stringa specificata è categorizzato come numero.

IsNumber(Char)

Origine:
Char.cs
Origine:
Char.cs
Origine:
Char.cs
Origine:
Char.cs
Origine:
Char.cs

Indica se il carattere Unicode specificato è categorizzato come numero.

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

Parametri

c
Char

Carattere Unicode da valutare.

Valori restituiti

true se c è un numero; in caso contrario, false.

Esempio

Nell'esempio seguente viene illustrato 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

Commenti

Questo metodo determina se un oggetto Char è di una categoria Unicode numerica. Oltre a includere cifre, i numeri includono caratteri, frazioni, pedice, apice, numerali romani, numeratori di valuta e numeri circoscritti. Questo metodo è in contrasto con il IsDigit metodo , che determina se è Char una cifra radix-10.

Importante

Il IsNumber(Char) metodo non è progettato per determinare se una stringa è costituita da caratteri numerici, ad esempio chiamando il metodo per ogni carattere in una stringa. Per determinare se una stringa è costituita da caratteri numerici, chiamare uno degli overload del TryParse metodo , ad esempio Int32.TryParse o Double.TryParse di un tipo integrale o a virgola mobile.

I numeri validi sono membri della UnicodeCategory.DecimalDigitNumbercategoria , UnicodeCategory.LetterNumbero UnicodeCategory.OtherNumber .

Il IsNumber(Char) metodo presuppone che c corrisponda a un singolo carattere linguistico e controlla se tale carattere rappresenta un numero. Tuttavia, alcuni numeri nello standard Unicode sono rappresentati da due Char oggetti che formano una coppia di surrogati. Ad esempio, il sistema di numerazione dell'Egeo è costituito da punti di codice da U+10107 a U+10133. Nell'esempio seguente viene utilizzato il ConvertFromUtf32 metodo per creare un'istanza di una stringa che rappresenta IL NUMERO 1 DELL'ORDINE DELL'ORDINE DELL'AVORIO. Come illustrato nell'output dell'esempio, il IsNumber(Char) metodo restituisce false se viene passato un surrogato elevato o un surrogato basso di questo carattere.

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

Vedi anche

Si applica a

IsNumber(String, Int32)

Origine:
Char.cs
Origine:
Char.cs
Origine:
Char.cs
Origine:
Char.cs
Origine:
Char.cs

Indica se il carattere in corrispondenza della posizione specificata in una stringa specificata è categorizzato come numero.

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

Parametri

s
String

Una stringa.

index
Int32

Posizione del carattere da valutare in s.

Valori restituiti

true se il carattere in corrispondenza della posizione index in s è un numero; in caso contrario, false.

Eccezioni

index è minore di zero o maggiore dell'ultima posizione in s.

Esempio

Nell'esempio seguente viene illustrato 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

Commenti

Questo metodo determina se un oggetto Char è di una categoria Unicode numerica. Oltre a includere cifre, i numeri includono caratteri, frazioni, pedice, apice, numerali romani, numeratori di valuta e numeri circoscritti. Questo metodo è in contrasto con il IsDigit metodo , che determina se è Char una cifra radix-10.

Le posizioni dei caratteri in una stringa vengono indicizzate a partire da zero.

Importante

Il IsNumber(String, Int32) metodo non è progettato per determinare se una stringa è costituita da caratteri numerici, ad esempio chiamando il metodo per ogni carattere in una stringa. Per determinare se una stringa è costituita da caratteri numerici, chiamare uno degli overload del TryParse metodo , ad esempio Int32.TryParse o Double.TryParse di un tipo integrale o a virgola mobile.

I numeri validi sono membri della UnicodeCategory.DecimalDigitNumbercategoria , UnicodeCategory.LetterNumbero UnicodeCategory.OtherNumber .

Se l'oggetto in corrispondenza della Char posizione index è il primo carattere di una coppia di surrogati valida, il IsNumber(String, Int32) metodo determina se la coppia di surrogati forma una cifra numerica. Ad esempio, il sistema di numerazione dell'Egeo è costituito da punti di codice da U+10107 a U+10133. Nell'esempio seguente viene utilizzato il ConvertFromUtf32 metodo per creare un'istanza di una stringa che rappresenta IL NUMERO 1 DELL'ORDINE DELL'ORDINE DELL'AVORIO. Come illustrato nell'output dell'esempio, il IsNumber(String, Int32) metodo restituisce true se viene passato il surrogato elevato del NUMERO 1 DELL'ORDINE DELL'UTERO. Tuttavia, se viene passato il surrogato basso, considera solo la categoria del surrogato basso e restituisce 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

Vedi anche

Si applica a