bom a funcao aki é percorrer um jformattedtextfield e pegar somente os numeros dele:
[code] String texto = Telas.Menu.telefone.getText(); //pega tudo que estiver no campo
String aux = “”;
for (int i = 0; i < texto.length(); i++) {
if (Character.isDigit(texto.charAt(i)) == true){
aux = aux+texto.charAt(i); //quando encontra um numero coloca na string aux
}
}
String aux2 = aux;
int telefone = Integer.parseInt(aux2); //converte para int a string aux2 que só tem numeros
System.out.println(telefone);[/code]
ele esta acusando o seguinte erro na linha 10 acima e eu nao entendo pq…
[color=red]Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException:[/color]
[quote=andre.froes]paulomn, o erro provavelmente vai estar quando você chama Telas.Menu.telefone.getText().
Faça o mesmo teste que eu e veja o resultado.
ao invés de:
String texto = Telas.Menu.telefone.getText();
coloque:
String texto = "a21a54s85a4s54a84s";
e veja que ele traz os valores corretos.[/quote]
que estranho, sempre usei o getText() e ele sempre funcionou direito, :shock: nem com .toString() funcionou :?
troquei como voce falou e deu erro
[color=red]Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “21548545484”[/color]
É porque o valor máximo que você pode armazenar em uma variável do tipo int é 2.147.483.647. Se você tentar fazer parse num número maior que esse, acontecerá o ParseException.
Por exemplo, se eu tentar rodar seu programa com o número ( 11 ) 9999-9999 dá certinho, com ( 48 ) 9999-9999, vai dar pau =/
Verifique se há mesmo a necessidade de armazenar este valor como um número. Se houver, armazene numa variável com maior capacidade, como double.
[quote=Preco]É porque o valor máximo que você pode armazenar em uma variável do tipo int é 2.147.483.647. Se você tentar fazer parse num número maior que esse, acontecerá o ParseException.
Por exemplo, se eu tentar rodar seu programa com o número (48) 9999-9999, vai dar pau =/
Verifique se há mesmo a necessidade de armazenar este valor como um número. Se houver, armazene numa variável com maior capacidade, como double.[/quote]
putz é verdade, eu nem percebi, pq como sao numeros de telefone com 10 digitos, e o codigo aki do ms é 67, eu estava colokando toda hora 67 e nem perebi que ia alem do que a cabe na variavel, :shock: vlw, vou fazer com variavel do tipo long.