有人可以简化模式中的以下行:
下面的代码是删除尾随零,但我无法理解。
字符串阈值为299.0,输出为299。
public static String removeTrailingZeros(String threshold) {
Pattern thresholdPattern = Pattern.compile("([\\.,]0)($|\\s+)");
Matcher match = thresholdPattern.matcher(threshold);
threshold = match.replaceFirst("$2");
return threshold;
}
我们为什么要做“ match.replaceFirst(” $ 2“);”
我不明白它的重要性。
以及如何找到尾随的零分辨率?
它不会用299代替299.00吗?如果我想这样做,我该怎么做以适应299.0和299.00?
最佳答案
$ 1,$ 2 ... $ n正则表达式替换是对括号中包含的匹配项的引用。 $ 0将是整个匹配项,$ 1将是第一个带括号的捕获,$ 2将是第二个,依此类推。
Pattern thresholdPattern = Pattern.compile("([\\.,]0*)($|\\s+)");
它将删除任何数量的尾随零。