Java从字符串获取数字或货币格式

Java从字符串获取数字或货币格式,java,numbers,number-formatting,Java,Numbers,Number Formatting,我有一个包含XML的代码,它被解析并将所有值作为字符串处理。其中一些字符串是具有货币或%或数字格式的度量值。如何从字符串中获取此格式,然后在以后重新应用它。当数字转换为双精度时,格式将被删除 <p><val>$4500.30</val><val>45.0%</val></p> //parse out String metric1 = "$4500.30"; String metric2 = "45.0%"; //r

我有一个包含XML的代码,它被解析并将所有值作为字符串处理。其中一些字符串是具有货币或%或数字格式的度量值。如何从字符串中获取此格式,然后在以后重新应用它。当数字转换为双精度时,格式将被删除

<p><val>$4500.30</val><val>45.0%</val></p>

//parse out

String metric1  = "$4500.30";
String metric2  = "45.0%";

//remove special char
metric1 = metric1.replaceAll("[^A-Za-z0-9.]", "");

//I need to reapply formatting after it is removed(such as $)
$4500.3045.0%

//解析出 字符串metric1=“$4500.30”; 字符串度量2=“45.0%”; //删除特殊字符 metric1=metric1.replaceAll(“^A-Za-z0-9.]”,即“); //删除格式后,我需要重新应用格式(例如$)
我意识到这是一个糟糕的方法。由于这些值存储为字符串,所以我只是保留了格式,并使用了字符串的另一个副本,该副本后来被转换为double

您还可以使用NumberFormats的预定义实例,以便能够在每次需要时解析和格式化值。最好将值同时作为普通值和格式化值。

您可以添加一个示例吗?