我想知道从字符串中分割十进制数的正则表达式
str = "COD Amount = 333.98"
在上面的字符串值中,我只需要十进制值,即
333.98
。
必须使用正则表达式吗?如果不是,那么您可以使用:
public class Split {
public static void main(String[] args) {
String line = "COD Amount = 333.98";
String[] array = line.split("=");
double amount = Double.parseDouble(array[1]);
System.out.println(amount);
}
}
希望有帮助。
编辑
使用正则表达式:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Split {
public static void main(String[] args) {
String line = "COD Amount = 333.98";
Pattern p = Pattern.compile(".+= (\\d+\\.\\d+)");
Matcher m = p.matcher(line);
if (m.find()) {
System.out.println(m.group(1));
}
}
}
但请确保所有字符串都采用相同的格式:[代码] [描述] = [数字]
(我还是觉得第一种方案最合适)
编辑2
因为您的输入是这样的:
"COD Amount = 333.98, Coverage = $564.000"
(您应该向我们提供原始问题中行的完整格式)
您可以结合之前的两个解决方案:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Split {
public static void main(String[] args) {
String line = "COD Amount = 333.98, Coverage = $564.000";
String[] array = line.split(",");
for (int i = 0; i < array.length; i++) {
Pattern p = Pattern.compile(".+= \\$?(\\d+\\.\\d+)");
Matcher m = p.matcher(array[i]);
if (m.find()) {
System.out.println(m.group(1));
}
}
}
}