String para BigDecimal

Pessoal recebe de um jText um sequencia de números, por ser uma sequencia muito grande não dá para usar um int.
Tem como eu passar essa String para BigDecimal?
Ou é preciso usar outro recurso para isso?

Existe um construtor de BigDecimal que recebe um string como parâmetro.

new BigDecimal("11111111111111111111.222222222") ; // ou uma String qualquer...

e este construtor dispara NumberFormatException caso haja algum problema durante a conversão…

Fique atento para o seguinte:

BigDecimal foo = new BigDecimal("0.1");
BigDecimal bar = new BigDecimal(0.1d);

System.out.println(foo.equals(bar)); // imprime false...

Isso ocorre pois 0.1 não é representado precisamente utilizando double… Sempre que trabalhar com BigDecimal prefira o construtor usando String.

Só uma pergunta, você precisa mesmo utilizar BigDecimal? ou só está tentando ler um “inteiro grande”? se for este o caso existe o BigInteger. Sendo que ambos são imutáveis, ou seja foo.add(“2”) não altera o valor de foo, temos que escrever foo = foo.add(“2”);

Valeu.

a) Se a tal seqüência não for tão grande assim, use um long.
b) Se na verdade a seqüência tem números e letras, use uma string mesmo. (Por exemplo, um número de RG pode ter o “dígito” verificador “X”, que até onde sei é um número, mas em algarismos romanos.

Valeu pelas dicas, mas a sequencia é grande e é composta somente por números.