Consistencia de dados (apenas dados numericos) <RESOLVIDO>

:lol: Olá Companheiros de forum :lol:

Estou tentando um exercicio para escola aqui, onde o usuario vai ter que digitar a matricula.

Somente poderei aceitar matriculas de 6 caracteres e numerico. Nao pode colocar letra na matricula.

Eu pensei assim:

public static boolean verificaMatricula()
{
//AQUI ELE PEDE O USUARIO PARA DIGITAR A MATRICULA.
String mat = Console.readLine("Digite a matricula: ");
//AQUI EU TENTO CONSISTIR SOMENTE 6 POSIÇÕES
//E GOSTARIA TMB QUE FOSSE SOMENTE NUMEROS.
while (mat.length() != 6 || )
{
mat = Console.readLine("Digite a matricula: ");
}
return Servicos.verificaMatricula(mat);
}

Não me lembro da sintaxe, me parece que tem algo assim: (int)[0-9]
Se alguém poder me ajudar agradeceria.
Até mais !!

Esse eu programinha envolve tela SWING contendo TextFields ou é só em linha de comando mesmo??

se for o caso de Swing, só usar o JFormattedTextField e MaskFormatter.

implementa o MaskFormatter no constructor do JFormattedTextField.

no link da api abaixo mostra cada character que aceita qual tipo:

http://download.oracle.com/javase/6/docs/api/javax/swing/text/MaskFormatter.html

Como nosso amigo acima falo, caso vc esteja utilizando o componente SWING JFormattertextField, o código que faz isso que você deseja é mais ou menos esse aqui…

private void mascaraParaCampoNumerico()
{
     MaskFormatter num = new MaskFormatter("######");// MATRÍCULA DE NO MAXIMO 6 DIGITOS
     num.install(seuJFormatterTextField);

}

[quote=Anderson S.]Como nosso amigo acima falo, caso vc esteja utilizando o componente SWING JFormattertextField, o código que faz isso que você deseja é mais ou menos esse aqui…

[code]
private void mascaraParaCampoNumerico()
{
MaskFormatter num = new MaskFormatter("######");// MATRÍCULA DE NO MAXIMO 6 DIGITOS
num.install(seuJFormatterTextField);

}
[/code][/quote]

não esquece de tratar o ParseException!!! :smiley:

[quote=alexandref93][quote=Anderson S.]Como nosso amigo acima falo, caso vc esteja utilizando o componente SWING JFormattertextField, o código que faz isso que você deseja é mais ou menos esse aqui…

[code]
private void mascaraParaCampoNumerico()
{
MaskFormatter num = new MaskFormatter("######");// MATRÍCULA DE NO MAXIMO 6 DIGITOS
num.install(seuJFormatterTextField);

}
[/code][/quote]

não esquece de tratar o ParseException!!! :smiley: [/quote]
A ferramente trata pra ele, fique tranquilo!! :roll:

[quote=Anderson S.][quote=alexandref93][quote=Anderson S.]Como nosso amigo acima falo, caso vc esteja utilizando o componente SWING JFormattertextField, o código que faz isso que você deseja é mais ou menos esse aqui…

[code]
private void mascaraParaCampoNumerico()
{
MaskFormatter num = new MaskFormatter("######");// MATRÍCULA DE NO MAXIMO 6 DIGITOS
num.install(seuJFormatterTextField);

}
[/code][/quote]

não esquece de tratar o ParseException!!! :smiley: [/quote]
A ferramente trata pra ele, fique tranquilo!! :roll: [/quote]

hehehe, só pra dá um toque xD!

[quote=alexandref93][quote=Anderson S.][quote=alexandref93][quote=Anderson S.]Como nosso amigo acima falo, caso vc esteja utilizando o componente SWING JFormattertextField, o código que faz isso que você deseja é mais ou menos esse aqui…

[code]
private void mascaraParaCampoNumerico()
{
MaskFormatter num = new MaskFormatter("######");// MATRÍCULA DE NO MAXIMO 6 DIGITOS
num.install(seuJFormatterTextField);

}
[/code][/quote]

não esquece de tratar o ParseException!!! :smiley: [/quote]
A ferramente trata pra ele, fique tranquilo!! :roll: [/quote]

hehehe, só pra dá um toque xD![/quote]
Entendo… :XD:

Para postar código utilize a tag code /code: http://www.guj.com.br/posts/list/50115.java

Se o exercício permite a utilização de expressão regular como você está citando, pode ser utilizado o método matches da String, que vai dizer se a string bate com a expressão passada.

matricula.matches("[0-9]+") // vai retornar true se houverem apenas números ou false caso contrário.

[quote=Eric Yuzo]Para postar código utilize a tag code /code: http://www.guj.com.br/posts/list/50115.java

Se o exercício permite a utilização de expressão regular como você está citando, pode ser utilizado o método matches da String, que vai dizer se a string bate com a expressão passada.

matricula.matches("[0-9]+") // vai retornar true se houverem apenas números ou false caso contrário.

Funcionou.

otimo ^^

ficou assim :

public static boolean verificaMatricula()
{
String mat = Console.readLine(“Digite a matricula: “);
while (mat.length() != 6 || mat.matches(”[0-9]”) == false)
{
mat = Console.readLine("Digite a matricula: ");
}
return Servicos.verificaMatricula(mat);
}

:lol: Vlw galera :lol: