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

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á

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

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

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().

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:

[code] 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));

[/code]