Consistencia de dados (apenas dados numericos) <RESOLVIDO>

9 respostas
fcoutinhoj

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

9 Respostas

A

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

alexandref93

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

A

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);

}
alexandref93
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...
private void mascaraParaCampoNumerico()
{
     MaskFormatter num = new MaskFormatter("######");// MATRÍCULA DE NO MAXIMO 6 DIGITOS
     num.install(seuJFormatterTextField);

}

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

A
alexandref93:
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...
private void mascaraParaCampoNumerico()
{
     MaskFormatter num = new MaskFormatter("######");// MATRÍCULA DE NO MAXIMO 6 DIGITOS
     num.install(seuJFormatterTextField);

}

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


A ferramente trata pra ele, fique tranquilo!! :roll:

alexandref93
Anderson S.:
alexandref93:
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...
private void mascaraParaCampoNumerico()
{
     MaskFormatter num = new MaskFormatter("######");// MATRÍCULA DE NO MAXIMO 6 DIGITOS
     num.install(seuJFormatterTextField);

}

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


A ferramente trata pra ele, fique tranquilo!! :roll:

hehehe, só pra dá um toque xD!

A
alexandref93:
Anderson S.:
alexandref93:
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...
private void mascaraParaCampoNumerico()
{
     MaskFormatter num = new MaskFormatter("######");// MATRÍCULA DE NO MAXIMO 6 DIGITOS
     num.install(seuJFormatterTextField);

}

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


A ferramente trata pra ele, fique tranquilo!! :roll:

hehehe, só pra dá um toque xD!


Entendo... :XD:

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

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

Criado 30 de outubro de 2010
Ultima resposta 31 de out. de 2010
Respostas 9
Participantes 4