在开发中面对一些大数字,也许需要加分隔处理。例如:100,000,000,000。下面提供处理此问题的工具类,代码如下:
import android.text.TextUtils;
/**
* Created by wishes on 2018/5/29.
*/
public class DealNum {
/** 数字加分隔
* @param numStr:字符串格式的数字
* @param divider:分隔的字符
* @param num:分隔的位数
* */
public static String addDivider(String numStr,String divider,int num){
if(TextUtils.isEmpty(numStr)){
return null;
}
String[] strs = null;
StringBuilder sb1;
if(numStr.contains(".")) {
strs = numStr.split("\\.");
sb1 = new StringBuilder(strs[0]);
}else {
sb1 = new StringBuilder(numStr);
}
StringBuilder sb2 = new StringBuilder();
StringBuilder temp = new StringBuilder();
for(int i = 0;i<sb1.length();i=0){
if(sb1.length()>num){
temp.append(divider);
temp.append(sb1.substring(sb1.length()-num,sb1.length()));
sb2.insert(0,temp);
sb1.delete(sb1.length()-num,sb1.length());
}else{
sb2.insert(0,sb1);
break;
}
temp.delete(0,temp.length());
}
if(strs!=null){
return sb2.append("."+strs[1]).toString();
}else{
return sb2.toString();
}
}
/** 数字去分隔
* @param numStr:字符串格式的数字
* @param divider:分隔的字符
* */
public static String delDivider(String numStr,String divider) {
if(TextUtils.isEmpty(numStr)){
return null;
}
numStr = numStr.replaceAll(divider,"");
return numStr;
}
}
java中使用的话,则把判断非空的代码替换成java的即可,同时建议将StringBuilder换成StringBuffer。