package com.imdroid.common.util;

import java.text.DecimalFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringUtil {

    /**
     * @param data 指定字符串
     * @param str 需要定位的特殊字符或者字符串
     * @param num   第n次出现
     * @return  第n次出现的位置索引
     */
    public static int getIndexOf(String data,String str,int num){
        Pattern pattern = Pattern.compile(str);
        Matcher findMatcher = pattern.matcher(data);
        //标记遍历字符串的位置
        int indexNum=0;
        while(findMatcher.find()) {
            indexNum++;
            if(indexNum==num){
                return findMatcher.start();
            }
        }
        //System.out.println("字符或者字符串"+str+"第"+num+"次出现的位置为："+findMatcher.start());
        return -1;
    }

    /**
     * 保留小数点多少位，不足补零
     * @param v
     * @param scale 大于等于0
     * @return
     */
    public static String roundByScale(double v, int scale) {
        if(scale == 0){
            return new DecimalFormat("0").format(v);
        }
        String formatStr = "0.";
        for(int i=0;i<scale;i++){
            formatStr = formatStr + "0";
        }
        return new DecimalFormat(formatStr).format(v);
    }

}
