Como determinar o tamanho de um dado em uma classe

9 respostas
G

Olá,

Eu criei um menu básico em console mesmo e preciso limitar o tamanho de um dado do tipo long para 13 dígitos. Quando o usuário digitar o valor, não poderá passar dessa quantidade e também não poderá ser menor.

Exemplo:

Criei a classe

public class TamanhoItem {

      long 13Digitos;
      String descricao;
      int valorEstoque;
      float valorVenda;

}

Em long 13Digitos, quando for pedido ao usuário entrar com o código do item, o tamanho dessa variável deverá ser limitada em 13 dígitos.

Eu preciso também de uma ajuda sobre como fazer para localizar um item digitado pelo usuário e verificar se ele está entre os itens cadastrados, nesse caso, só preciso saber como fazer a comparação. A chave será o código de 13 dígitos.

Desde já agradeço.

9 Respostas

M

você vai usar banco de dados? se sim seria interessante tratar pelo banco, mas de qualquer forma poderia implementar gets e sets para esses atibutos que precisam de tal validação e validar no método set o valor está dentro do esperado.

B

Você pode fazer isso

Scanner scan = new Scanner(System.in);
	
String value = null;
		
do {
    value = scan.next(); 
    System.out.println(value);
} while (!value.matches("^[0-9]{13}$"));
		
System.out.println("matched > " + value);

Existe também essa outra maneira, mas será necessário tratar uma Exception.

Scanner scan = new Scanner(System.in);
		
String value = scan.next("^[0-9]{13}$");
M
btafarelo:
Você pode fazer isso
Scanner scan = new Scanner(System.in);
	
String value = null;
		
do {
    value = scan.next(); 
    System.out.println(value);
} while (!value.matches("^[0-9]{13}$"));
		
System.out.println("matched > " + value);

Existe também essa outra maneira, mas será necessário tratar uma Exception.

Scanner scan = new Scanner(System.in);
		
String value = scan.next("^[0-9]{13}$");

Também é uma boa opção, mas resolve somente em console.

B

Mas ele disse que é em console mesmo…

M

Mas ele disse que é em console mesmo…

Sim eu entendi que ele precisa em console, só quiz dizer que dessa forma só vai resolver em console, ok?

Não foi critica que eu quiz fazer.

A

Acretido que o mais simples seria usar if ( objeto.lenght > 13) então faça tal coisa…

sou iniciante então me corrijam se estiver errado rsrs.

Artur Martini.

B

Mas se você usar o length só irá saber se tem ou não 13 caracteres.

Para saber se são todos números você terá ainda que percorrer todos os caracteres da String; ou testar com o Long.parseLong e tratar na exceção. Coisa que não é recomendada; ou testar com uma expressão regular, que foi o que usei.

O solução é sua, resolva como achar melhor ou mais fácil.

Mas o código que postei aí em cima soluciona seu problema. Qual a dúvida?

Não conseguiu utilizar ou só não entendeu o que está sendo feito?

G

Valeu pessoal pela ajuda.

Me desculpem pela demora na resposta.

Resolvi o problema limitando o tipo long a 13 dígitos com o L
Ex: 5555555555555L

Abs!

M

Parabéns,

Só faltou alterar o tópico para [RESOLVIDO]

Criado 13 de março de 2013
Ultima resposta 25 de mar. de 2013
Respostas 9
Participantes 4