如何将字符串拆分为有效货币或双重格式。我知道所有值只有2位小数。
示例
String line = "3850.439.00 0.00 260.00 23";
因此3850.439.00
不正确,需要拆分。
我有这个
String[] arr = line.split("\\d+.(\\.\\d{2})");
但结果不正确 - 9.00 0.00 23
必填结果为3850.43 9.00 0.00 260.00 23
答案 0 :(得分:5)
而不是split
你可以使用这个负面的lookbehind正则表达式从你的输入中获得所有有效的匹配:
(?<!\.)\d+(?:\.\d{2})?
(?<!\.)
在前面的字符是DOT时声明失败是负面的后视。
Java代码:
final String regex = "(?<!\\.)\\d+(?:\\.\\d{2})?";
final String string = "3850.439.00 0.00 260.00 23";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
}