Class ChineseNumberFormatter

java.lang.Object
org.miaixz.bus.core.math.ChineseNumberFormatter

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

    • ChineseNumberFormatter

      public ChineseNumberFormatter()
  • Method Details

    • formatSimple

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

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

      public static ChineseNumberFormatter of()
      获取 NumberChineseFormatter 默认对象
      Returns:
      NumberChineseFormatter
    • setUseTraditional

      public ChineseNumberFormatter setUseTraditional(boolean useTraditional)
      是否使用繁体,即金额表示模式,如:壹拾贰圆叁角贰分
      Parameters:
      useTraditional - 是否使用繁体
      Returns:
      this
    • setMoneyMode

      public ChineseNumberFormatter setMoneyMode(boolean moneyMode)
      是否使用金额模式,,如:壹拾贰圆
      Parameters:
      moneyMode - 是否使用金额模式
      Returns:
      this
    • setColloquialMode

      public ChineseNumberFormatter setColloquialMode(boolean colloquialMode)
      是否使用口语模式,此模式下的数字更加简化,如“一十一”会表示为“十一”
      Parameters:
      colloquialMode - 是否口语模式
      Returns:
      this
    • setNegativeName

      public ChineseNumberFormatter setNegativeName(String negativeName)
      设置负数的表示名称,如"负"
      Parameters:
      negativeName - 负数表示名称,非空
      Returns:
      this
    • setUnitName

      public ChineseNumberFormatter setUnitName(String unitName)
      设置金额单位名称,如:“元”或“圆”
      Parameters:
      unitName - 金额单位名称
      Returns:
      this
    • format

      public String format(double amount)
      阿拉伯数字转换成中文.

      主要是对发票票面金额转换的扩展

      如:-12.32

      发票票面转换为:(负数)壹拾贰圆叁角贰分

      而非:负壹拾贰元叁角贰分

      共两点不同:1、(负数) 而非 负;2、圆 而非 元 2022/3/9

      Parameters:
      amount - 数字
      Returns:
      格式化后的字符串