Galera eu vi em um livro de java, o seguinte codigo…
existe isso mesmo? nao da erro.?
String answer = "Answer";
int value = Integer.parseInt(answer.trim());
grato.
Galera eu vi em um livro de java, o seguinte codigo…
existe isso mesmo? nao da erro.?
String answer = "Answer";
int value = Integer.parseInt(answer.trim());
grato.
Dá erro ao executar porque não consegue converter “Answer” para inteiro. Mas sim, é código válido e compila.
sim realmente existe, o que acontece é que se você colocar alguma letra na string ele irá lançar uma excessão, que pode ser tratada com o try - catch, a excessão mais provavel a ocorrer é a NumberFormatException…;
Neste caso a converção será feita para um número inteiro, mas tem ainda como converter para
float: Float.parseFloat(suaString)
double: Double.parseDouble(suaString);
para converter para outros tipos de numero inteiro pode ser usado o seguinte
byte bt = (byte)Integer.parseInt(suaString);
neste caso vc utiliza um cast, que seria como se vc estivesse assumindo o risco, no caso de um byte que esse numero nunca passaria de +/- 127;
Mas como já citei a cima, ele não pode conter letras, por isto o código a cima irá gerar um erro
Este código gera uma exception… NumberFormatException. o livro deveria tar falando de erro alguma coisa assim ou vc entendeu errado.
Verdade mesmo…estava se referindo ao erro de exceção de numero.
O compilador até poderia dar um “warning” mas não um “error” no código abaixo:
String answer = "Answer";
int value = Integer.parseInt(answer.trim());
Se você quiser fazer um compilador mais complexo e lento, poderia usar algumas técnicas de análise de fluxo para determinar que inevitavelmente será gerado um NumberFormatException. Algumas ferramentas (como o FindBugs) usam técnicas similares e conseguem detectar alguns erros desse tipo.