优化打印数值转换中文数字

This commit is contained in:
czx 2021-02-01 18:09:36 +08:00
parent bc5136ebbb
commit 8e5f19069d

View File

@ -2,6 +2,8 @@ package com.ruoyi.system.fantang.common;
import java.util.*; import java.util.*;
import static org.apache.commons.lang3.StringUtils.split;
public class NumberToList { public class NumberToList {
public static Map<String, String> convertTo(float number, String level) { public static Map<String, String> convertTo(float number, String level) {
@ -162,28 +164,38 @@ public class NumberToList {
} }
public static String convertToHan(float number, String level) { public static String convertToHan(float number, String level) {
Map<String, String> map = convertTo(number, level); String[] hanNumber = { "", "", "", "", "", "", "", "", "", "" };
String han[] = { "", "", "", "", "", "", "", "", "", "" }; String[] han = { "", "", "", "", "", "", "", "", ""};
String[] str = {"fen","jiao","yuan", "shi", "bai", "qian", "wan", "shiwan", "baiwan", "qianwan"};
StringBuilder builder = new StringBuilder();
for (String key : map.keySet()) { String[] str = String.valueOf((long) (number * 100)).split("");
if (Objects.equals(map.get(key), " ")) { int i = 0;
map.put(key, "0"); for (String s : str) {
} else if (Objects.equals(map.get(key), "¥")) { builder
map.put(key, "0"); .append(hanNumber[Integer.parseInt(s)])
} .append(" ")
.append(han[i]);
i++;
} }
return builder.toString();
return String.format("%s佰%s拾%s万%s仟%s佰%s拾%s元%s角%s分", // for (String key : map.keySet()) {
han[Integer.parseInt(map.get("baiwan"+level))], // if (Objects.equals(map.get(key), " ")) {
han[Integer.parseInt(map.get("shiwan"+level))], // map.put(key, "0");
han[Integer.parseInt(map.get("wan"+level))], // } else if (Objects.equals(map.get(key), "¥")) {
han[Integer.parseInt(map.get("qian"+level))], // map.put(key, "0");
han[Integer.parseInt(map.get("bai"+level))], // }
han[Integer.parseInt(map.get("shi"+level))], // }
han[Integer.parseInt(map.get("yuan"+level))], //
han[Integer.parseInt(map.get("jiao"+level))], // return String.format("%s佰%s拾%s万%s仟%s佰%s拾%s元%s角%s分",
han[Integer.parseInt(map.get("fen"+level))]); // hanNumber[Integer.parseInt(map.get("baiwan"+level))],
// hanNumber[Integer.parseInt(map.get("shiwan"+level))],
// hanNumber[Integer.parseInt(map.get("wan"+level))],
// hanNumber[Integer.parseInt(map.get("qian"+level))],
// hanNumber[Integer.parseInt(map.get("bai"+level))],
// hanNumber[Integer.parseInt(map.get("shi"+level))],
// hanNumber[Integer.parseInt(map.get("yuan"+level))],
// hanNumber[Integer.parseInt(map.get("jiao"+level))],
// hanNumber[Integer.parseInt(map.get("fen"+level))]);
} }
} }