Converti stringa in Int in C#
-
Conversione da C# da
stringa
aint
- MetodoInt16.Parse()
/Int32.Parse()
/Int64.Parse()
-
Conversione da C# da
stringa
aint
- MetodoInt16.TryParse()
/Int32.TryParse()
/Int64.TryParse()
-
Conversione da C# da
String
aInt
- MetodoConvert.ToInt16()
/Convert.ToInt32()
/Convert.ToInt64()
Ci sono alcune cose che devi considerare quando converti una stringa in int. In questo articolo, tratteremo alcuni dei metodi più semplici e consigliati per raggiungere questo obiettivo.
Conversione da C# da stringa
a int
- Metodo Int16.Parse()
/ Int32.Parse()
/ Int64.Parse()
Il metodo Parse()
può essere utilizzato per convertire una rappresentazione di stringa di un numero in un intero con segno a 16/32/64 bit equivalente. Per scopi rappresentativi, copriremo solo le conversioni a 32 bit da qui in poi.
using System;
public class Instance {
public static void Main() {
string str_var = "123";
int num_var = Int32.Parse(str_var);
System.Console.WriteLine(num_var);
}
}
Produzione:
123
Un leggero svantaggio dell’utilizzo di questo metodo è che genera una FormatException
nel caso in cui la stringa non sia una sequenza di cifre.
Sebbene Parse()
ignori gli spazi bianchi all’inizio e alla fine della stringa, a parte questo, tutti i caratteri devono avere un valore numerico appropriato per una conversione corretta.
Raccomandiamo l’istruzione try...catch
per gestire l’eccezione, come illustrato nei seguenti codici.
using System;
public class Instance {
public static void Main() {
string str_var = "abc";
try {
int num_var = Int32.Parse(str_var);
System.Console.WriteLine(num_var);
} catch (FormatException) {
System.Console.WriteLine("Invalid String");
}
}
}
Produzione:
Invalid String
Conversione da C# da stringa
a int
- Metodo Int16.TryParse()
/ Int32.TryParse()
/ Int64.TryParse()
Considerato come una valida alternativa al metodo Parse()
, il metodo TryParse()
non genera eccezioni in caso di fallimento. Invece, restituisce semplicemente False
se la conversione fallisce, rendendo l’implementazione più semplice.
using System;
public class Instance {
public static void Main() {
bool result;
string str_var = "111";
int num_var;
result = Int32.TryParse(str_var, out num_var);
if (result)
System.Console.WriteLine(num_var);
else
System.Console.WriteLine("Invalid String");
}
}
Produzione:
111
Conversione da C# da String
a Int
- Metodo Convert.ToInt16()
/ Convert.ToInt32()
/ Convert.ToInt64()
Il metodo Convert()
accetta la variabile stringa come parametro e restituisce il valore numerico con segno a 16/32/64 bit equivalente. Simile al metodo Parse()
, con questo metodo hai bisogno di un’istruzione try...catch
per le eccezioni.
using System;
public class Instance {
public static void Main() {
string str_var = "123";
try {
int num_var = Convert.ToInt32(str_var);
System.Console.WriteLine(num_var);
} catch (FormatException) {
Console.WriteLine("Invalid String");
} catch (OverflowException) {
Console.WriteLine("The string cannot fit in 32 bit value");
}
}
}
Produzione:
123
Le eccezioni sono costose e generalmente non sono considerate una buona pratica da includere nel flusso del programma. Ma a volte potrebbero essere utili per estrarre informazioni importanti come la condizione di Overflow nel metodo Convert()
.
Tutti i metodi di cui sopra sono ugualmente efficaci e presentano alcuni compromessi quando si tratta di implementazione. Si consiglia di scegliere quello ottimale sulla base delle considerazioni che abbiamo esposto in questo articolo.
Articolo correlato - Csharp Integer
- C# Converti Int in String
- Converti Int in Enum in C#
- Int casuale in C#
- Numero casuale in un intervallo in C#
- Conversione da int a esadecimale in C#