Class NumberFormatter

java.lang.Object
org.aoju.bus.core.convert.NumberFormatter

public class NumberFormatter extends Object
数字转中文类 包括:
 1. 数字转中文大写形式,比如一百二十一
 2. 数字转金额用的大写形式,比如:壹佰贰拾壹
 3. 转金额形式,比如:壹佰贰拾壹整
 
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    把中文转换为数字 如 二百二十 220 见:https://www.d5.nz/read/sfdlq/text-part0000_split_030.html 一百一十二 -》 112 一千零一十二 -》 1012
    static String
    format(double amount, boolean isUseTraditional)
    阿拉伯数字转换成中文,小数点后四舍五入保留两位.
    static String
    format(double amount, boolean isUseTraditional, boolean isMoneyMode)
    阿拉伯数字转换成中文,小数点后四舍五入保留两位.
    static String
    format(double amount, boolean isUseTraditional, boolean isMoneyMode, String negativeName, String unitName)
    阿拉伯数字转换成中文,小数点后四舍五入保留两位.
    static String
    format(int amount, boolean isUseTraditional)
    格式化-999~999之间的数字 这个方法显示10~19以下的数字时使用"十一"而非"一十一"
    static String
    format(long amount)
    阿拉伯数字(支持正负整数)四舍五入后转换成中文节权位简洁计数单位,例如 -5_5555 = -5.56万
    static String
    format(long amount, boolean isUseTraditional)
    阿拉伯数字(支持正负整数)转换成中文
    static String
    将阿拉伯数字转为英文表达式
    static String
    formatSimple(long value)
    将阿拉伯数字转化为简洁计数单位,例如 2100 - 2.1k 范围默认只到w
    static String
    formatSimple(long value, boolean isTwo)
    将阿拉伯数字转化为简洁计数单位,例如 2100 - 2.1k
    static String
    toChinese(char c, boolean isUseTraditional)
    数字字符转中文,非数字字符原样返回

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • NumberFormatter

      public NumberFormatter()
  • Method Details

    • format

      public static String format(long amount)
      阿拉伯数字(支持正负整数)四舍五入后转换成中文节权位简洁计数单位,例如 -5_5555 = -5.56万
      Parameters:
      amount - 数字
      Returns:
      中文
    • format

      public static String format(int amount, boolean isUseTraditional)
      格式化-999~999之间的数字 这个方法显示10~19以下的数字时使用"十一"而非"一十一"
      Parameters:
      amount - 数字
      isUseTraditional - 是否使用繁体
      Returns:
      中文
    • format

      public static String format(long amount, boolean isUseTraditional)
      阿拉伯数字(支持正负整数)转换成中文
      Parameters:
      amount - 数字
      isUseTraditional - 是否使用繁体
      Returns:
      中文
    • format

      public static String format(double amount, boolean isUseTraditional)
      阿拉伯数字转换成中文,小数点后四舍五入保留两位. 使用于整数、小数的转换.
      Parameters:
      amount - 数字
      isUseTraditional - 是否使用繁体
      Returns:
      中文
    • format

      public static String format(double amount, boolean isUseTraditional, boolean isMoneyMode)
      阿拉伯数字转换成中文,小数点后四舍五入保留两位. 使用于整数、小数的转换.
      Parameters:
      amount - 数字
      isUseTraditional - 是否使用繁体
      isMoneyMode - 是否为金额模式
      Returns:
      中文
    • format

      public static String format(double amount, boolean isUseTraditional, boolean isMoneyMode, String negativeName, String unitName)
      阿拉伯数字转换成中文,小数点后四舍五入保留两位. 使用于整数、小数的转换.
      Parameters:
      amount - 数字
      isUseTraditional - 是否使用繁体
      isMoneyMode - 是否金额模式
      negativeName - 负号转换名称 如:负、(负数)
      unitName - 单位名称 如:元、圆
      Returns:
      中文
    • toChinese

      public static String toChinese(char c, boolean isUseTraditional)
      数字字符转中文,非数字字符原样返回
      Parameters:
      c - 数字字符
      isUseTraditional - 是否繁体
      Returns:
      中文字符
    • chineseToNumber

      public static int chineseToNumber(String chinese)
      把中文转换为数字 如 二百二十 220 见:https://www.d5.nz/read/sfdlq/text-part0000_split_030.html
      • 一百一十二 -》 112
      • 一千零一十二 -》 1012
      Parameters:
      chinese - 中文字符
      Returns:
      数字
    • format

      public static String format(Object x)
      将阿拉伯数字转为英文表达式
      Parameters:
      x - 阿拉伯数字,可以为Number对象,也可以是普通对象,最后会使用字符串方式处理
      Returns:
      英文表达式
    • formatSimple

      public static String formatSimple(long value)
      将阿拉伯数字转化为简洁计数单位,例如 2100 - 2.1k 范围默认只到w
      Parameters:
      value - 被格式化的数字
      Returns:
      格式化后的数字
    • formatSimple

      public static String formatSimple(long value, boolean isTwo)
      将阿拉伯数字转化为简洁计数单位,例如 2100 - 2.1k
      Parameters:
      value - 对应数字的值
      isTwo - 控制是否为只为k、w,例如当为false时返回4.38m,true返回438.43w
      Returns:
      格式化后的数字