當數字爲零(0)時是否可以顯示空白(空字符串)? (嚴格的左邊沒有零點)java.text.DecimalFormat在零時爲空?
回答
您可以使用MessageFormat
,特別是其ChoiceFormat
特點:
double[] nums = {
-876.123, -0.1, 0, +.5, 100, 123.45678,
};
for (double num : nums) {
System.out.println(
num + " " +
MessageFormat.format(
"{0,choice,-1#negative|0#zero|0<{0,number,'#,#0.000'}}", num
)
);
}
此打印:
-876.123 negative
-0.1 negative
0.0 zero
0.5 0.500
100.0 1,00.000
123.45678 1,23.457
注意MessageFormat
不使用DecimalFormat
下引擎蓋。從the documentation:
FORMAT TYPE: number
FORMAT STYLE: subformatPattern
SUBFORMAT CREATED: new DecimalFormat(
subformatPattern,
DecimalFormatSymbols.getInstance(getLocale())
)
所以這並使用DecimalFormat
,儘管是間接的。如果由於某種原因而被禁止,那麼您必須自己檢查一下特殊情況,因爲DecimalFormat
不能區分零。從the documentation:
DecimalFormat
模式的語法如下:Pattern: PositivePattern PositivePattern ; NegativePattern
沒有選項以零提供一個特殊的模式,所以沒有DecimalFormat
模式,可以爲你做這個。如上所示,您可以擁有if
,或者讓MessageFormat/ChoiceFormat
爲您做。
我真的需要使用java.text.DecimalFormat – Eduardo 2010-06-09 06:41:54
可以使用的String.format方法:
int num1=0;
int num2=33;
string str1 = (num1!=0) ? String.format("%3d", num1) : " ";
string str2 = (num2!=0) ? String.format("%3d", num2) : " ";
System.out.println("("+str1+")"); // output: ( )
System.out.println("("+str2+")"); // output: (33)
格式的語法非常類似於C的printf(這個基本的使用)
Er,它會將0打印爲「0」,而不是空字符串。 – 2012-10-02 17:29:23
你是對的,這個答案是針對不同的問題... 我會做一些改變,以適應這一個以及:) – 2012-10-05 20:10:39
- 1. dplyr每小時和空時爲零
- 2. ORACLE顯示計數爲零,當列爲空時爲空
- 3. 空值爲零mysql
- 4. java.text.DecimalFormat中的%g等價嗎?
- 5. 的contentViewController((空))或contentViewController.view爲零
- 6. numpy數組爲零或空
- 7. MySQL從零空間變爲非空
- 8. C#發表的數據設置爲空時,索引不爲零
- 9. dataWithContentsOfURL當URL爲空時返回值不爲零
- 10. java.text.DecimalFormat中相當於目標C
- 11. 當值不爲零時清零
- 12. 在Django中零(Integer)被視爲空白還是空的?
- 13. string.Format()空白零
- 14. 空和零值
- 15. 爲什麼打印空字符串時,零彈出?
- 16. 如何使NSURL變量從空字符串分析時爲零?
- 17. 如何設置爲零,而不是空
- 18. Apache Kylin - 空值測量變爲零?
- 19. 將SSRS中的空白替換爲零
- 20. NSMutableArray返回true爲空和零兩個
- 21. 停止將空白處理爲零
- 22. 應用見解 - 清空爲零
- 23. 將空白輸入轉換爲零?
- 24. 檢查列表爲空或只含零
- 25. 空和零作爲字符串
- 26. JsonTextWriter序列化空爲「零」用的ToString()
- 27. Rails的檢查存儲爲空或零
- 28. 如何在添加數字時將零值視爲零?
- 29. SCNScene在使用`named加載時爲零:`
- 30. 在解析Swift中的JSON時爲零
採用哪種方法?在DecimalFormat中有很多格式化字符串的方法 – TheLQ 2010-06-08 23:10:53
數字是任何'java.lang.Number'還是一個特定的子類? – trashgod 2010-06-09 02:34:53
@ Lord.Quackstar任何方法,讓我知道,如果任何方法會做。 @trashgod它是一個java.lang.Number,但如果它解決了我的問題,我可以使用特定的子類。 – Eduardo 2010-06-09 06:32:33