Estou com um problema, tenho um campo string que me retorna o seguinte valor 1.000,00, gostaria de converter esse valor para double, se eu der um Double.ParseDouble, ele retorna um erro, se eu dou um replace na string, para trocar a virgula pelo ponto, ai o valor fica 1.000.00, e ele tb da erro!
Primeiro da um replace pra tirar o “.” (poe pra trocar por “”), e depois da outro replace pra trocar a “,” por “.”, depois é só usar Double.parseDouble().
Você pode tentar o seguinte: crie um objeto do tipo NumberFormat e tente formatar a string vinda do usuário com esse objeto. Por exemplo,
String texto = "..."; // vem do usuário
NumberFormat formatador = NumberFormat.getNumberInstance();
float numero = formatador.parse(texto).floatValue();
O método parse pode lançar a exceção ParseException, por isso, você deve tratá-la. E a configuração de número (sobre pontos, vírgulas…) que ele usa é a configuração padrão do sistema que tiver rodando. Caso você queira especificar uma configuração de números, passe um objeto Locale no método getNumberInstance.