我想這個表達上this thread發現,以取代在Java中的前導零:使用正則表達式刪除前導零,但保持減號
s.replaceFirst("^0+(?!$)", "")
但我怎樣才能使它的值工作像-00.8899
?
我想這個表達上this thread發現,以取代在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
Hi..Nice解決方案。但我也希望在正數之前加上「+」號。例如Double 0.10應該是+.10和-0.10應該是-.10和1.0應該是+1。請爲此提供解決方案。 – AndiM
@AndiM試試看:'^([ - +]?)0 *' – hsz