String -> bigDecimal separado por ","

O bigDecimal tem um construtor que recebe string. Mas a parte decimal dele usa ponto para separar a parte inteira da fracional. Como eu poderia fazer para usar vírgula no lugar de ponto?

Posso te dar 2 sugestões:

class MyBigDecimal extends BigDecimal
{
    MyBigDecimal (String s)
   {
         super (s.replace(',' , '.' );
   }
}

ou o mesmo como método:

  public BigDecimal (String s)
  { 
         return new BigDecima (s.replace(',' , '.' );
  }

Espero ter ajudado

Retificando…o segundo:

  public BigDecimal [b]criaBigDecimal[/b](String s)
   { 
          return new BigDecima (s.replace(',' , '.' );
   }
 
 

qual a diferença entre usar ‘,’ e “,” ?

‘a’ eh um char.
“a” eh uma String. :wink:

Preciso converter texto em BigDecimal.
Uma forma de fazer seria considerar que todos fossem separados por ‘,’, fazendo a substituição:

new BigDecimal (texto.replace(',' , '.'));

Outra forma seria utilizando a classe NumberFormat.

new BigDecimal(nf.parse(texto).toString());

Eu terei alguma diferença no resultado final desses 2 métodos?
O nf.parse(texto).toString seria o mesmo que o texto.replace(’,’,’.’) ?