如果您无法使用它们,则可以使用
^(-?\d+)(?:\.0+|(\.\d*?)0+|\.+)?$
并替换为$1$2
。
请参阅regex演示。相应地调整正则表达式。这里是解释:
String s = "50.000\n50\n50.100\n50.040\n50.\n50.000\n50.500\n50\n-5";
System.out.println(s.replaceAll("(?m)^(-?\\d+)(?:\\.0+|(\\.\\d*?)0+|\\.+)?$", "$1$2"));
// => [50, 50, 50.1, 50.04, 50, 50, 50.5, 50, -5]