安卓开发中数字分隔处理工具类

在开发中面对一些大数字,也许需要加分隔处理。例如: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;inum){
                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。

你可能感兴趣的:(安卓开发)