欢迎访问宙启技术站
智能推送

Java中的数值格式化函数

发布时间:2023-06-10 06:44:56

Java中提供了多种数值格式化函数,它们都可以将数值类型数据转化为字符串类型数据,并且可以根据需求将数值格式化为需要的格式,比如货币形式、百分数形式等等。在Java中数值格式化函数属于java.text包。

1. DecimalFormat类

DecimalFormat类是java.text包中的一个类,用于格式化数字。DecimalFormat类构造方法中传递的参数格式为字符串类型,该字符串中的#表示可以选取的数字,0表示必须存在的数字,.表示小数点,%表示百分数,E表示科学计数法。例如,以下是将数字格式化为货币形式的代码:

DecimalFormat df = new DecimalFormat("#,###.00");

double d = 12345.67;

String formatted = df.format(d);

System.out.println(formatted);    //输出结果 12,345.67

2. NumberFormat类

NumberFormat类是java.text包中一个抽象类,它是所有数值格式化类的父类,可以用它来格式化各种类型的数字,例如整数、浮点数、货币数等。NumberFormat类中提供了两个常用的静态方法getCurrencyInstance()和getPercentInstance(),用于分别将数字格式化为货币形式和百分数形式。例如,以下是将数字格式化为百分数形式的代码:

NumberFormat nf = NumberFormat.getPercentInstance();

double d = 0.123;

String formatted = nf.format(d);

System.out.println(formatted);    //输出结果 12%

3. MessageFormat类

MessageFormat类是java.text包中一个类,用于格式化消息。它可以将消息中的占位符替换成指定的参数。例如,在以下代码中,{0}和{1}是占位符,它们分别代表了数组中的第一个和第二个元素:

Object[] arguments = { "John", "Doe" };

String message = MessageFormat.format("Hello, {0} {1}!", arguments);

System.out.println(message);    //输出结果 Hello, John Doe!

4. SimpleDateFormat类

SimpleDateFormat类是java.text包中一个类,用于格式化日期。我们可以将Date对象格式化为自己想要的形式,比如“yyyy-MM-dd”或者“yyyy年MM月dd日”。以下是将Date对象格式化为“yyyy-MM-dd”形式的代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date = new Date();

String formatted = sdf.format(date);

System.out.println(formatted);    //输出结果 2021-11-11

5. ChoiceFormat类

ChoiceFormat类是java.text包中一个类,它可以将一个区间范围内的数字映射到一个指定的字符串中。例如,在以下代码中,我们将数字1到4映射到不同的字符串:

double[] limits = { 1, 2, 3, 4 };

String[] formats = { "one", "two", "three", "four" };

ChoiceFormat cf = new ChoiceFormat(limits, formats);

System.out.println(cf.format(2));    //输出结果 two

总结

Java中提供了多种数值格式化函数,包括DecimalFormat类、NumberFormat类、MessageFormat类、SimpleDateFormat类和ChoiceFormat类。这些类可以将数字、日期等数据类型格式化为需要的形式,使其更易读、更易于理解。开发人员可以根据实际需求来选择使用哪种数值格式化函数。