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, i
será igual a 0, não 10 após o TryParse
.
int i = 10;
bool failure = int.TryParse("asdf", out i);
Isso ocorre porque TryParse
usa 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 string
sempre será um int
:
int myInt = int.Parse(myString);
Se você gostaria de verificar se string
é realmente a int
primeira:
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.TryParse
quando 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 someString
em someNumeric
e retornar um result
depende se a conversão foi bem-sucedida, true
se a conversão foi bem-sucedida e false
se a conversão falhou. Observe que este método não lançará exceção se a conversão falhar como o Int32.Parse
mé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 #