要自定义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
对象的符号。在上面的示例中,我们将地区设置为美国,并再次输出了格式化后的数字。