Validação de moeda (Campo já formatado)

4 respostas
daniel.netti

Olá gente,
caçei por 2 horas no forum mas não achei uma forma de validar um valor, então resolvi postar…
como posso validar uma string? (segue explicadinho abaixo):

recebo uma string com um valor (moeda) já formatado : Ex: 1234,56
preciso validar essa string, ou seja:
não pode ser 12…34,56
nem 12asd34,56
nem 1234,56
etc…
alé disso o tamanho maximo quando convertido pra double ou float ou Decimal é (10,2)
como faço pra validar essa string?
Obrigado desde já

4 Respostas

thundercas

Como você está recebendo os valores?? Por um JTextField??? Ou via Scanner, JOptionPane etc?

daniel.netti

por parametro em um metodo que estou criando para validação. :slight_smile:

M

Olá, veja se te ajuda:

float f2 = 12322222.45678f;
Locale locale = new Locale("pt","BR");	
NumberFormat nf = NumberFormat.getCurrencyInstance(locale);		
System.out.println(nf.format(f2));

É uma pequena parte, dê uma trabalhada em cima pra ver se você consegue desenvolver o restante, como por exemplo: converter a string recebida para float ou double antes de passar para o NumberFormat.format().

daniel.netti

A formatação funfou show de bola, e ainda me ajuda a validar alguns aspectos do valor, por exemplo:
causa exception quando entro com 123asd45,56 , o problema é que não está aceitando valores como 9.999.99 tentei dar um replaceAll de "." para "" mas não funfa....segue o codigo:

float f=0;
		String s = "9999,99";
		s=s.replaceAll(".", "");//aqui não funciona
		s=s.replaceAll(",", ".");
		f = Float.parseFloat(s);//Aqui ele causa a exception pra valores inválidos
		
		Locale locale = new Locale("pt","BR");	
		NumberFormat nf = NumberFormat.getCurrencyInstance(locale);		
		System.out.println(nf.format(f));
Criado 20 de abril de 2008
Ultima resposta 20 de abr. de 2008
Respostas 4
Participantes 3