C# Identifica se una stringa è un numero

Minahil Noor 12 ottobre 2023
  1. Programma C# per identificare se una stringa è un numero utilizzando il metodo Enumerable.All()
  2. Programma C# per identificare se una stringa è un numero utilizzando il metodo Regex.IsMatch()
  3. Programma C# per identificare se una stringa è un numero utilizzando il metodo Int32.TryParse()
  4. Programma C# per identificare se una stringa è un numero usando il bucle foreach
C# Identifica se una stringa è un numero

Mentre affrontiamo problemi del mondo reale, a volte, dobbiamo affrontare un problema in cui vogliamo prendere l’input come una stringa ma usarlo come un numero intero. Per renderlo possibile dobbiamo sempre confermare che la stringa di input sia un numero oppure no.

In C#, possiamo usare molti metodi per identificare se una stringa di input è un numero o meno. Scoprirai questi metodi leggendo questo articolo fino alla fine.

Programma C# per identificare se una stringa è un numero utilizzando il metodo Enumerable.All()

Il metodo Enumerable.All() appartiene a LINQ. LINQ fa parte di C# e viene utilizzato per accedere a diversi database e origini dati. Possiamo modificare questo metodo per verificare se una stringa è un numero. Passeremo il metodo char.IsDigit() come parametro al metodo Enumerable.All().

La sintassi corretta per utilizzare questo metodo è la seguente:

StringName.All(char.IsDigit);

Codice di esempio:

using System;
using System.Linq;

public class IdentifyString {
  public static void Main() {
    string number = "123456";
    if (number.All(char.IsDigit)) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

Produzione:

The Given String is a Number.

Programma C# per identificare se una stringa è un numero utilizzando il metodo Regex.IsMatch()

In C# possiamo usare le espressioni regolari per controllare vari modelli. Una espressione regolare è un modello specifico per eseguire un’azione specifica. In C#, abbiamo espressioni regolari ^[0-9]+$ e ^\d+$ per verificare se una stringa è un numero.

La sintassi corretta per utilizzare questo metodo è la seguente:

Regex.IsMatch(StringName, @"Expression");

Codice di esempio:

using System;
using System.Text.RegularExpressions;

public class IdentifyString {
  public static void Main() {
    string number = "123456";
    if (Regex.IsMatch(number, @"^[0-9]+$")) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

Produzione:

The Given String is a Number.

Qui, il punto importante è che le due espressioni regolari, ^[0-9]+$ e ^\d+$ non sono la stessa cosa nel loro funzionamento. ^[0-9]+$ è usato per i caratteri 0-9 di base ma ^\d+$ è usato per cifre decimali caratteri in Unicode, senza RegexOptions.ECMAScript specificato (predefinito). Ad esempio, come 4 in thailandese, è anche identificato come un numero.

Programma C# per identificare se una stringa è un numero utilizzando il metodo Int32.TryParse()

Il metodo Int32.TryParse() viene utilizzato per convertire la stringa di numeri in un intero firmato a 32 bit. Se la stringa non è numerica, non viene convertita con successo e quindi questo metodo restituisce false.

La sintassi corretta per utilizzare questo metodo è la seguente:

Int32.TryParse(StringName, out intvariable);

Qui intvariable è qualsiasi variabile intera non inizializzata.

Codice di esempio:

using System;

public class IdentifyString {
  public static void Main() {
    int n;
    string number = "123456";
    bool result = Int32.TryParse(number, out n);
    if (result) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

Produzione:

The Given String is a Number.

Programma C# per identificare se una stringa è un numero usando il bucle foreach

Questo è il processo più semplice per identificare se una stringa è un numero. In questo processo, controlleremo ogni carattere della stringa come un numero usando il bucle foreach.

La sintassi corretta per utilizzare il bucle foreach è la seguente:

foreach (datatype variablename in somecollection) {
  // steps to iterate
}

Codice di esempio:

using System;

public class IdentifyString {
  // custom method to check if a string is a number
  public static bool CustomMethod(string number) {
    foreach (char c in number) {
      if (c >= '0' && c <= '9') {
        return true;
      }
    }
    return false;
  }
  public static void Main() {
    string number = "123456";
    if (CustomMethod(number)) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

Produzione:

The Given String is a Number.

Articolo correlato - Csharp String