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

被折叠的 条评论
为什么被折叠?



