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();
}