Pessoal, estou precisando de um Regex para cobrir os seguintes valores:
String valor1 = executaConversao("0.5000");
String valor2 = executaConversao("5.0000");
String valor3 = executaConversao("0.0001");
String valor4 = executaConversao("1.0000");
String valor5 = executaConversao("5000.0025");
String valor6 = executaConversao("5001.0025");
String valor7 = executaConversao("5001.0000");
Assert.assertEquals("0.5000", valor1);
Assert.assertEquals("5", valor2);
Assert.assertEquals("0.0001", valor3);
Assert.assertEquals("1", valor4);
Assert.assertEquals("5000.0025", valor5);
Assert.assertEquals("5001.0025", valor6);
Assert.assertEquals("5001", valor7);
Tentei fazer assim mais sem sucesso:
public String executaConversao(String valorInicio) {
Pattern p = Pattern.compile("\\d+\\.^0{4}");
Matcher m = p.matcher(valorInicio);
if (m.find()) {
return valorInicio;
} else {
DecimalFormat df = new DecimalFormat();
String valorFinal = df.format(Double.parseDouble(valorInicio));
return valorFinal;
}
}
Eu quero que o valor que esta vindo do banco por exemplo : 5001.0000 seja convertindo pra 5001 quando tive somente zeros apois o ponto. Se tiver vindo 5001.0025 venha o proprio valor.