Como faço para converter uma string em um inteiro em C #?
Como faço para converter uma string em um inteiro em C #?
Respostas:
Se você tiver certeza de que analisará corretamente, use
int.Parse(string)
Se você não é, use
int i;
bool success = int.TryParse(string, out i);
Cuidado! No caso abaixo, iserá igual a 0, não 10 após o TryParse.
int i = 10;
bool failure = int.TryParse("asdf", out i);
Isso ocorre porque TryParseusa um parâmetro out , não um parâmetro ref .
int myInt = System.Convert.ToInt32(myString);
Como vários outros mencionaram, você também pode usar int.Parse()e int.TryParse().
Se você tiver certeza de que stringsempre será um int:
int myInt = int.Parse(myString);
Se você gostaria de verificar se stringé realmente a intprimeira:
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);
ou
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParseé mais seguro, pois se você colocar algo mais varString(por exemplo "fsfdsfs"), obterá uma exceção. Usando int.TryParsequando a string não pode ser convertida em int, ela retornará 0.
Se você tiver certeza de que possui um número "real" em sua string, ou se sentir confortável com qualquer exceção que possa surgir, use-o.
string s="4";
int a=int.Parse(s);
Para ter mais controle sobre o processo, 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;
}
Faça 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);
4 técnicas são comparadas aqui.
O caminho mais rápido acabou sendo o seguinte:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s" é a string que você deseja converter em um int. Este código assume que você não terá exceções durante a conversão. Portanto, se você sabe que seus dados de string sempre serão algum tipo de valor int, o código acima é a melhor maneira de buscar velocidade pura.
No final, "y" terá seu valor int.
bool result = Int32.TryParse(someString, out someNumeric)
Este método tentará converter someStringem someNumerice retornar um resultdepende se a conversão foi bem-sucedida, truese a conversão foi bem-sucedida e falsese a conversão falhou. Observe que este método não lançará exceção se a conversão falhar como o Int32.Parsemétodo fez e, em vez disso, retorna zero para someNumeric.
Para obter mais informações, você pode ler aqui:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
Como converter string para inteiro em C #