繁体   English   中英

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

[英]Remove leading zeros with regex but keep minus-sign

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

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

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

您可以尝试:

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

输出:

-.8899

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM