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:
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.