📅  最后修改于: 2023-12-03 15:01:55.851000             🧑  作者: Mango
在Java中,NumberFormat类可以帮助我们格式化数字和货币等,它提供了许多方法来设置格式和解析字符串。
NumberFormat类是一个抽象类,因此我们不能直接创建它的实例。但是,我们可以通过调用静态方法getNumberInstance()来获取一个NumberFormat对象,该对象可以格式化和解析普通数字。
getNumberInstance()是一个静态方法,返回一个NumberFormat对象,可以格式化和解析普通数字。
使用getNumberInstance()方法时,可以不用传递任何参数,它将返回默认的本地化NumberFormat实例。
此外,还可以通过传递Locale对象来获取指定的本地化NumberFormat实例,以便将数字格式化为不同语言和地区的格式。
public static NumberFormat getNumberInstance(Locale inLocale)
以下示例演示了如何使用默认的本地化NumberFormat实例将数字格式化为字符串,并将格式化后的字符串解析回数字。
import java.text.NumberFormat;
public class NumberFormatExample {
public static void main(String[] args) {
double num = 12345.678;
// get default number format instance
NumberFormat nf = NumberFormat.getNumberInstance();
// format number
String formattedNum = nf.format(num);
System.out.println("Formatted Number: " + formattedNum);
// parse formatted number back to number
try {
double parsedNum = nf.parse(formattedNum).doubleValue();
System.out.println("Parsed Number: " + parsedNum);
} catch (Exception e) {
System.out.println("Error parsing number: " + e.getMessage());
}
}
}
输出为:
Formatted Number: 12,345.678
Parsed Number: 12345.678
此外,我们也可以使用Locale对象来获取指定本地化的NumberFormat实例。例如,以下示例演示如何将数字格式化为德语格式:
import java.text.NumberFormat;
import java.util.Locale;
public class NumberFormatExample {
public static void main(String[] args) {
double num = 12345.678;
// get German number format instance
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMANY);
// format number
String formattedNum = nf.format(num);
System.out.println("Formatted Number: " + formattedNum);
}
}
输出为:
Formatted Number: 12.345,678