Sintaxe Java: Convertendo seqüências de caracteres em números

Normalmente em um Interface gráfica do usuário, haverá campos de texto que esperam que o usuário insira um valor numérico. Esse valor numérico terminará em um Corda objeto que realmente não ajuda o seu programa se você quiser fazer alguma aritmética. Felizmente, existem classes de wrapper que fornecem métodos para converter esses valores String em números e a classe String possui um método para convertê-los novamente.

Classes de Wrapper

o tipos de dados primitivos que lidam com números (ou seja, byte, int, double, float, long e short), todos têm equivalentes de classe. Essas classes são conhecidas como classes de wrapper, pois recebem um tipo de dados primitivo e o envolvem com a funcionalidade de uma classe. Por exemplo, a classe Double terá um valor duplo como dados e fornecerá métodos para manipular esse valor.

Todas essas classes de wrapper possuem um método chamado valueOf. Este método usa uma String como argumento e retorna uma instância da classe wrapper. Por exemplo, digamos que temos uma String com o valor de dez:

instagram viewer
Número da string = "10";

Ter esse número como uma String não é útil para nós, portanto usamos a classe Integer para convertê-lo em um objeto Inteiro:

Número inteiro convertidoNúmero = Número inteiro.ValorOf (número);

Agora o número pode ser usado como um número e não como uma String:

convertNumber = convertNumber + 20;

Você também pode fazer a conversão ir diretamente para um tipo de dados primitivo:

int convertNumber = Integer.valueOf (número) .intValue ();

Para outros tipos de dados primitivos, basta inserir a classe de wrapper correta - Byte, Inteiro, Duplo, Flutuante, Longo Curto.

Nota: Você deve garantir que a String possa ser analisada no tipo de dados apropriado. Se não puder, você terminará com um erro de tempo de execução. Por exemplo, tentando ocultar "dez" em um número inteiro:

Número da sequência = "dez";
int convertNumber = Integer.valueOf (número) .intValue ();

produzirá um NumberFormatException porque o compilador não tem idéia "dez" deve ser 10.

Mais sutilmente, o mesmo erro ocorrerá se você esquecer que um 'int' pode conter apenas números inteiros:

Número da sequência = "10,5";
int convertNumber = Integer.valueOf (número) .intValue ();

O compilador não truncará o número, apenas pensará que não se encaixa em um 'int' e que é hora de lançar uma NumberFormatException.

Convertendo números em strings

Para transformar um número em uma String, segue o mesmo tipo de padrão que a classe String também possui um método valueOf. Pode usar qualquer um dos números de tipos de dados primitivos como argumento e produzir uma String:

int numberTwenty = 20;

String convertida = String.valueOf (numberTwenty);

que coloca "20" como o valor String de covertido.

ou você pode usar o método toString de qualquer uma das classes de wrapper:

String convertida = Integer.toString (numberTwenty);

O método toString é comum a todos os tipos de objetos - na maioria das vezes, é apenas uma descrição do objeto. Para classes de wrapper, essa descrição é o valor real que elas contêm. Nessa direção, a conversão é um pouco mais robusta. Se a classe Double fosse usada em vez do número inteiro:

String convertida = Double.toString (numberTwenty);

o resultado não causaria uma erro de tempo de execução. A variável convertida conteria a String "20.0".

Há também uma maneira mais sutil de converter números quando você estiver concatenando Strings. Se uma String fosse construída como:

String aboutDog = "Meu cachorro tem" + numberTwenty + "anos.";

a conversão do int numberTwenty é feita automaticamente.

instagram story viewer