ConvertNumberToChineseMoneyWords.dart 1.48 KB
class ConvertNumberToChineseMoneyWords {
  // 大写数字
  static List<String> NUMBERS = [
    "一",
    "二",
    "三",
    "四",
    "五",
    "六",
    "七",
    "八",
    "九",
    "十",
    ""
  ];

  static String toChinese(int index) {
    if (index > 100) {
      return index.toString();
    }
    StringBuffer stringBuffer = StringBuffer();
    if (index / 10 < 1) {
      return NUMBERS[index];
    }
    int tenUnit = (index / 10).toInt();
    int remainder = index % 10;
    if (remainder == 9) {
      tenUnit++;
      remainder = 10;
    }
    if (tenUnit == 1) {
      stringBuffer
        ..write("十")
        ..write(NUMBERS[remainder]);
      return stringBuffer.toString();
    }
    stringBuffer
      ..write(NUMBERS[tenUnit - 1])
      ..write("十")
      ..write(NUMBERS[remainder]);
    return stringBuffer.toString();
  }

  static int toInt(String index) {
    switch (index) {
      case '一':
        return 0;
        break;
      case '二':
        return 1;
        break;
      case '三':
        return 2;
        break;
      case '四':
        return 3;
        break;
      case '五':
        return 4;
        break;
      case '六':
        return 5;
        break;
      case '七':
        return 6;
        break;
      case '八':
        return 7;
        break;
      case '九':
        return 8;
        break;
      case '十':
        return 9;
        break;
      case '十一':
        return 10;
        break;
      default:
    }
  }
}