當數字爲零(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. numpy數組爲零或空
- 5. MySQL從零空間變爲非空
- 6. dataWithContentsOfURL當URL爲空時返回值不爲零
- 7. java.text.DecimalFormat中相當於目標C
- 8. string.Format()空白零
- 9. 爲什麼打印空字符串時,零彈出?
- 10. 空和零作爲字符串
- 11. JsonTextWriter序列化空爲「零」用的ToString()
- 12. Apache Kylin - 空值測量變爲零?
- 13. 應用見解 - 清空爲零
- 14. 將SSRS中的空白替換爲零
- 15. Rails的檢查存儲爲空或零
- 16. 停止將空白處理爲零
- 17. 在轉換爲int之前將空字段轉換爲零?
- 18. 在解析Swift中的JSON時爲零
- 19. `[[NSBundle mainBundle] bundleIdentifier]`在運行XCTest時爲零
- 20. 結構在展開時發現爲零
- 21. 爲什麼我在倍增時變零?
- 22. SCNScene在使用`named加載時爲零:`
- 23. 時間差爲零秒
- 24. loaderInfo.bytesTotal爲零時怎麼辦
- 25. mysql零和空值
- 26. 空X零問題
- 27. 如果字段在創建/更新而不是NULL時留空,則爲零
- 28. 設置文本框爲零時,其他文本框爲空或用戶輸入零
- 29. 將空字符串作爲NULL和零作爲零插入浮動列
- 30. 在elisp中將零更改爲零
採用哪種方法?在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