目录

  • 一. 数字金额格式化
  • 1.1 千位分隔符
  • 1.2 保留整数
  • 1.3 保留指定位小数
  • 二. 字符串格式化



一. 数字金额格式化

1.1 千位分隔符

BigDecimal bigDecimal = new BigDecimal("10000000.258556");

最多保留小数后三位,且添加千位分隔符

String format = NumberFormat.getNumberInstance().format(bigDecimal);
System.out.println(format);  // 10,000,000.259

仅保留整数并添加千位分隔符

String format = NumberFormat.getIntegerInstance().format(bigDecimal);
System.out.println(format);  // 10,000,000

String format = new DecimalFormat(",###").format(bigDecimal);
System.out.println(format);  // 10,000,000

保留两位小数并添加千位分隔符

String format = new DecimalFormat(",###.00").format(bigDecimal);
System.out.println(format);  // 10,000,000.26

1.2 保留整数

// 仅保留整数
DecimalFormat decimalFormat = new DecimalFormat("0");

String format = decimalFormat.format(new BigDecimal("100.258556"));
System.out.println(format);  // 100

1.3 保留指定位小数

// 保留3为小数,会四舍五入
DecimalFormat decimalFormat = new DecimalFormat("0.000");

// 格式化BigDecimal类型的数据
BigDecimal bigDecimal = new BigDecimal("100.258556");
String format3 = decimalFormat.format(bigDecimal);
System.out.println(format3);  // 100.259

// 格式化double类型的数据
double num1 = 99.65878;
System.out.println(decimalFormat.format(num1));  // 99.659

二. 字符串格式化

// 指定要格式化的字符串模板
String strPattern = "你好{0},我的名字叫{1}.";
// 字符串模板中的参数(只能是数组,不能为List集合)
Object[] paramArray = {"张三", "李四"};

// 使用MessageFormat对象进行格式化
String format = MessageFormat.format(strPattern, paramArray);
System.out.println(format);  // 你好张三,我的名字叫李四.