Compartilhar via


How to: Converter uma seqüência em um int (guia de programação C#)

Estes exemplos mostram algumas maneiras diferentes, você pode converter um seqüência de caracteres para um int. Tal conversão pode ser útil ao se obter entrada numérica de um argumento de linha de comando, por exemplo. Existem métodos de semelhantes para a conversão de strings para outros tipos numéricos, como float ou longo. A tabela abaixo relaciona alguns desses métodos.

Tipo numérico

Método

decimal

ToDecimal(String)

float

ToSingle(String)

double

ToDouble(String)

short

ToInt16(String)

long

ToInt64(String)

ushort

ToUInt16(String)

uint

ToUInt32(String)

ulong

ToUInt64(String)

Exemplo

Este exemplo chama o ToInt32(String) método para converter a entrada seqüência de caracteres para um int . O programa captura as duas exceções mais comuns que podem ser geradas por este método. Se o número pode ser incrementado sem estourando o local de armazenamento inteiro, o programa adiciona 1 ao resultado e imprime a saída.

int numVal = -1;
bool repeat = true;

while (repeat == true)
{
    Console.WriteLine("Enter a number between −2,147,483,648 and +2,147,483,647 (inclusive).");

    string input = Console.ReadLine();

    // ToInt32 can throw FormatException or OverflowException.
    try
    {
        numVal = Convert.ToInt32(input);
    }
    catch (FormatException e)
    {
        Console.WriteLine("Input string is not a sequence of digits.");
    }
    catch (OverflowException e)
    {
        Console.WriteLine("The number cannot fit in an Int32.");
    }
    finally
    {
        if (numVal < Int32.MaxValue)
        {
            Console.WriteLine("The new value is {0}", numVal + 1);
        }
        else
        {
            Console.WriteLine("numVal cannot be incremented beyond its current value");
        }
    }
    Console.WriteLine("Go again? Y/N");
    string go = Console.ReadLine();
    if (go == "Y" || go == "y")
    {
        repeat = true;
    }
    else
    {
        repeat = false;
    }
}
// Keep the console open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();    

Outra maneira de converter um string para um int é por meio de Parse ou TryParse métodos da System.Int32 struct. O ToUInt32 usa o método Parse internamente. Se a seqüência de caracteres não estiver em um formato válido, Parse lança uma exceção, enquanto TryParse não não lança uma exceção, mas retorna false. Os exemplos a seguir demonstram chamadas bem-sucedidas e malsucedidas para Parse e TryParse.

int numVal = Int32.Parse("-105");
Console.WriteLine(numVal);
// Output: -105
// TryParse returns true if the conversion succeeded
// and stores the result in the specified variable.
int j;
bool result = Int32.TryParse("-105", out j);
if (true == result)
    Console.WriteLine(j);
else
    Console.WriteLine("String could not be parsed.");
// Output: -105
try
{
    int m = Int32.Parse("abc");
}
catch (FormatException e)
{
    Console.WriteLine(e.Message);
}
// Output: Input string was not in a correct format.
string inputString = "abc";
int numValue;
bool parsed = Int32.TryParse(inputString, out numValue);

if (!parsed)
    Console.WriteLine("Int32.TryParse could not parse '{0}' to an int.\n", inputString);

// Output: Int32.TryParse could not parse 'abc' to an int.

Consulte também

Tarefas

How to: Determinar se uma seqüência de caracteres representa um numérico Valor (guia de programação C#)

Referência

Tipos (guia de programação de C#)