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

Fra*_*fka 3 java regex

我想用这个线程上的表达式替换java中的前导零:

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

但是我怎样才能让它适用于像-00.8899

hsz*_*hsz 6

您可以尝试:

String output = "-00.8899".replace("^(-?)0*", "$1");
Run Code Online (Sandbox Code Playgroud)

输出:

-.8899
Run Code Online (Sandbox Code Playgroud)


Jim*_*Jim 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);
Run Code Online (Sandbox Code Playgroud)

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