使用正则表达式删除前导零但保留减号

时间:2011-10-26 18:56:34

标签: java regex

我想用this thread上的表达式替换java中的前导零:

s.replaceFirst("^0+(?!$)", "")

但是我怎样才能让它适用于像-00.8899这样的值?

2 个答案:

答案 0 :(得分:6)

您可以尝试:

String output = "-00.8899".replace("^(-?)0*", "$1");

输出:

-.8899

答案 1 :(得分:5)

为什么要处理字符串变量中的数值?

Java是一种强类型语言,您可能更容易将其转换为float或double,然后执行所有业务逻辑,最后格式化输出。

类似的东西:

Double d = Double.parseDouble(s);
double val = d; //mind the auto-boxing/unboxing

//business logic   

//get ready to display to the user
DecimalFormat df = new DecimalFormat("#.0000");
String s = df.format(d);

http://download.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html