对程序中千分位符的处理

本文详细介绍了一种在Java中处理大数据的技巧,特别是针对List<Map<String,Object>>中的BigDecimal类型数据,通过添加千分位符号来提高数据的可读性。同时,文章还提供了去除字符串中千分位符号的方法,适用于JSON数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,对List<Map<String,Object>>中数据类型为BigDecimal的数据处理,新增千分位符号

public static List<Map<String,Object>> getFormmatResult(){
    List<Map<String,Object>> result=threadLocal.get();
    Map<String,Map<String,String>> fieIdDicMap=new ConcurrentHashMap<>();

    for(Map<String,Object> stringObjectMap: result){
        for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
            Object valObj = entry.getValue();
            String keyStr = entry.getKey();
            String typeStr = valObj.getClass().toString();
            if(StringUtils.contains(typeStr,"BigDecimal")){
                BigDecimal valBig = (BigDecimal) valObj;
                String valStr = setCellStyleAccounting(valBig.doubleValue());
                stringObjectMap.put(keyStr,valStr);
            }

        }
    }

    threadLocal.remove();
    dictValueMap.remove();
    return result;
}

小数位后面的#表示,原数据有几位小数就保留几位小数(不超过八位时)

public static String setCellStyleAccounting(double number)
{
    NumberFormat nf = new DecimalFormat(",###.########");
    String testStr = nf.format(number);
    return testStr;
}

2,单独使用格式化数据

/**
 * 新增千分位符号
 * @param number
 * @return
 */
public static String setCellStyleAccounting(double number)
{
    NumberFormat nf = new DecimalFormat(",###.########");
    String testStr = nf.format(number);
    return testStr;
}
3,字符串去除千分位符号,适用于json
/**
 * 字符串去除千分位符号,适用于json
 * @param str
 * @return
 */
public static String  replaceString(String str){
    Pattern p = Pattern.compile("\\d+,\\d+?");
    Matcher m = p.matcher(str);
    StringBuffer sb=new StringBuffer();
    while(m.find()){
        m.appendReplacement(sb,m.group().replace(",", ""));
        System.out.println(m.group());
    }
    m.appendTail(sb);
    return sb.toString();
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值