要自定義NumberFormat
的模式,你可以使用DecimalFormat
類,它是NumberFormat
的一個子類,提供了更多的格式化選項。以下是一個示例代碼,展示了如何創建一個自定義的DecimalFormat
對象,并設置其模式:
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
public class CustomNumberFormat {
public static void main(String[] args) {
// 創建一個DecimalFormat對象
DecimalFormat decimalFormat = new DecimalFormat();
// 設置自定義模式
String pattern = "#,###.00"; // 這里的模式表示:千位分隔符為逗號,小數點后兩位
decimalFormat.applyPattern(pattern);
// 輸出格式化后的數字
double number = 1234567.89;
String formattedNumber = decimalFormat.format(number);
System.out.println("Formatted Number: " + formattedNumber); // 輸出:Formatted Number: 1,234,567.89
// 注意:在不同的地區,小數點和逗號的分隔符可能不同
// 因此,你可能需要根據用戶的地區設置來調整模式字符串
Locale locale = Locale.US; // 設置地區為美國
DecimalFormatSymbols symbols = new DecimalFormatSymbols(locale);
decimalFormat.setDecimalFormatSymbols(symbols);
// 再次輸出格式化后的數字,這次使用美國地區的符號
formattedNumber = decimalFormat.format(number);
System.out.println("Formatted Number (US Locale): " + formattedNumber); // 輸出:Formatted Number (US Locale): 1,234,567.89
}
}
在上面的示例中,我們首先創建了一個DecimalFormat
對象,并使用applyPattern
方法設置了自定義的模式字符串"#,###.00"
。這個模式字符串表示:千位使用逗號分隔,小數點后保留兩位。
然后,我們使用format
方法將一個浮點數格式化為字符串,并輸出結果。
注意,不同的地區可能使用不同的小數點和逗號分隔符。為了確保格式化后的數字符合用戶的地區設置,你可以使用DecimalFormatSymbols
類來獲取特定地區的符號,并將其設置為DecimalFormat
對象的符號。在上面的示例中,我們將地區設置為美國,并再次輸出了格式化后的數字。