¿Cómo convierto una cadena en un número entero en C #?
¿Cómo convierto una cadena en un número entero en C #?
Respuestas:
Si está seguro de que se analizará correctamente, use
int.Parse(string)
Si no es así, use
int i;
bool success = int.TryParse(string, out i);
¡Precaución! En el caso siguiente, i
será igual a 0, no a 10 después de TryParse
.
int i = 10;
bool failure = int.TryParse("asdf", out i);
Esto se debe a que TryParse
utiliza un parámetro de salida , no un parámetro de referencia .
int myInt = System.Convert.ToInt32(myString);
Como han mencionado varios otros, también puede usar int.Parse()
y int.TryParse()
.
Si está seguro de que string
siempre será un int
:
int myInt = int.Parse(myString);
Si desea comprobar si string
realmente es la int
primera vez:
int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value
if (isValid)
{
int plusOne = myInt + 1;
}
string varString = "15";
int i = int.Parse(varString);
o
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParse
es más seguro ya que si pones algo más varString
(por ejemplo, "fsfdsfs") obtendrás una excepción. Al usar int.TryParse
cuando la cadena no se puede convertir en int, regresará 0
.
Si está seguro de que tiene un número "real" en su cadena, o se siente cómodo con cualquier excepción que pueda surgir, use esto.
string s="4";
int a=int.Parse(s);
Para tener más control sobre el proceso, use
string s="maybe 4";
int a;
if (int.TryParse(s, out a)) {
// it's int;
}
else {
// it's no int, and there's no exception;
}
Haz algo como:
var result = Int32.Parse(str);
int i;
string whatever;
//Best since no exception raised
int.TryParse(whatever, out i);
//Better use try catch on this one
i = Convert.ToInt32(whatever);
La forma más rápida resultó ser la siguiente:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s" es la cadena que desea convertir en un int. Este código asume que no tendrá ninguna excepción durante la conversión. Entonces, si sabe que los datos de su cadena siempre serán algún tipo de valor int, el código anterior es la mejor manera de obtener velocidad pura.
Al final, "y" tendrá su valor int.
bool result = Int32.TryParse(someString, out someNumeric)
Este método va a tratar de convertir someString
en someNumeric
, y devolver una result
depende de si la conversión es exitosa, true
si la conversión se realiza correctamente y false
si la conversión fallado. Tenga en cuenta que este método no generará una excepción si la conversión falló como lo Int32.Parse
hizo el método y, en cambio, devuelve cero para someNumeric
.
Para obtener más información, puede leer aquí:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
Cómo convertir cadenas a entero en C #
Puedes usar cualquiera,
int i = Convert.ToInt32(myString);
o
int i =int.Parse(myString);