常用工具方法

package com.jpxx.admin.common.util;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
import org.springframework.util.StringUtils;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Pattern;

public class Arith {

    private static final int DEF_DIV_SCALE = 10;

    public static  String CITY_ID = "56775942199050240";
    public static  String CITY_NAME = "郑州市";
    public final static Map<String,String> GOVERNWAYNAMEMAP = new HashMap() {{
        put("0", "土石方外运");
        put("1", "整理地形绿化");
        put("2", "临时覆盖或绿化");
        put("3", "待定");
    }};
    public final static Map<String,String> TYPESTR = new HashMap() {{
        put("0", "工程弃土");
        put("1", "混合垃圾(工程弃土和拆迁垃圾)");
        put("2", "拆迁垃圾");
    }};

    /**
     * 获取编号
     * @param
     * @return
     */
    public synchronized static String getqynum(String flag,int singleResult){
        //汇总表
        Map<String, String> resultmap = new HashMap<>();
        resultmap.put("sz",String.valueOf(singleResult));//获取编号数字
        if(singleResult<10){
            flag += "000"+singleResult;
        }else if(singleResult<100){
            flag += "00"+singleResult;
        }else if(singleResult<1000){
            flag += "0"+singleResult;
        }else if(singleResult<10000){
            flag += singleResult;
        }
        return  flag;
    }

    /**
     * * 两个Double数相加 *
     *
     * @param v1 *
     * @param v2 *
     * @return Double
     */
    public static Double add(Double v1, Double v2) {
        BigDecimal b1 = new BigDecimal(v1.toString());
        BigDecimal b2 = new BigDecimal(v2.toString());
        return new Double(b1.add(b2).doubleValue());
    }

    /**
     * * 两个Double数相减 *
     *
     * @param v1 *
     * @param v2 *
     * @return Double
     */
    public static Double sub(Double v1, Double v2) {
        BigDecimal b1 = new BigDecimal(v1.toString());
        BigDecimal b2 = new BigDecimal(v2.toString());
        return new Double(b1.subtract(b2).doubleValue());
    }


    /**
     * * 两个Double数相乘 *
     *
     * @param v1 *
     * @param v2 *
     * @return Double
     */
    public static Double mul(Double v1, Double v2) {
        BigDecimal b1 = new BigDecimal(v1.toString());
        BigDecimal b2 = new BigDecimal(v2.toString());
        return new Double(b1.multiply(b2).doubleValue());
    }

    /**
     * * 两个Double数相除 *
     *
     * @param v1 *
     * @param v2 *
     * @return Double
     */
    public static Double div(Double v1, Double v2) {
        BigDecimal b1 = new BigDecimal(v1.toString());
        BigDecimal b2 = new BigDecimal(v2.toString());
        return new Double(b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP)
                .doubleValue());
    }

    /**
     * * 两个Double数相除,并保留scale位小数 *
     *
     * @param v1 *
     * @param v2 *
     * @param scale *
     * @return Double
     */
    public static Double div(Double v1, Double v2, int scale) {
        if (scale < 0) {
            throw new IllegalArgumentException(
                    "The scale must be a positive integer or zero");
        }
        BigDecimal b1 = new BigDecimal(v1.toString());
        BigDecimal b2 = new BigDecimal(v2.toString());
        try {
            return new Double(b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue());
        } catch (Exception e) {
            return 0d;
        }
    }

    /**
     * 把日期转换成不同格式的日期字符串
     * yyyy-MM-dd HH:mm:ss
     * format 1 yyyy-MM-dd HH:mm:ss 2yyyy-MM-dd 3yyyy-MM
     * @param date
     * @param format
     * @return
     */
    public static String getdateformat(Date date,int format){
        String formatstr = "yyyy-MM-dd HH:mm:ss";
        if(format==1){
            formatstr = "yyyy-MM-dd HH:mm:ss";
        }else if(format==2){
            formatstr = "yyyy-MM-dd";
        }else if(format==3){
            formatstr = "yyyy-MM";
        }
        SimpleDateFormat df = new SimpleDateFormat(formatstr);
        String datestr= df.format(date);
        return datestr;
    }

    /**
     * 把字符串日期 转换成日期
     * yyyy-MM-dd HH:mm:ss
     * format 1 yyyy-MM-dd HH:mm:ss 2yyyy-MM-dd 3yyyy-MM
     * @param datestr
     * @param format
     * @return
     */
    public static Date getdateformat(String datestr,int format){
        String formatstr = "yyyy-MM-dd HH:mm:ss";
        if(format==1){
            formatstr = "yyyy-MM-dd HH:mm:ss";
        }else if(format==2){
            formatstr = "yyyy-MM-dd";
        }else if(format==3){
            formatstr = "yyyy-MM";
        }
        SimpleDateFormat df = new SimpleDateFormat(formatstr);
        Date date= null;
        try {
            date = df.parse(datestr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }


    /**
     * 根据当前日期月份获取前n个月
     * @param n
     * @return
     */
    public static LinkedList<String> getFrontNMonth(int n){
        LinkedList<String> result = new LinkedList<>();
        for(int i=0;i<n;i++){
            String afterNMonth = getAfterNMonth(i);
            result.add(afterNMonth);
        }
        Collections.reverse(result);
        return result;
    }

    /**
     * 获取前n个月日期
     * @param i
     * @return
     */
    public static String getAfterNMonth(int i){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.MONTH, -i);
        Date m = c.getTime();
        return sdf.format(m);
    }

    /**
     * 如果不为空返回字符串类型 否则返回双引号空
     * @param obj
     * @return
     */
    public static String getisnullthen(Object obj){
        String result = "";
        if(!StringUtils.isEmpty(obj)){
            result =String.valueOf(obj);
        }
        return result;
    }

    /**
     * 若果是null返回0
     * @param obj
     * @return
     */
    public static String getisnullthennumber(Object obj){
        String result = "0";
        if(!StringUtils.isEmpty(obj)){
            result =String.valueOf(obj);
        }
        return result;
    }


    /**
     * 获取拼音
     */
    public static String getPinyin(String str)  {
        String name = str;
        char[] charArray = name.toCharArray();
        StringBuilder pinyin = new StringBuilder();
        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
        //设置大小写格式
        defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
        //设置声调格式:
        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        for (int i = 0; i < charArray.length; i++) {
            //匹配中文,非中文转换会转换成null
            if (Character.toString(charArray[i]).matches("[\\u4E00-\\u9FA5]+")) {
                String[] hanyuPinyinStringArray = new String[0];
                try {
                    hanyuPinyinStringArray = PinyinHelper.toHanyuPinyinStringArray(charArray[i],defaultFormat);
                } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
                    badHanyuPinyinOutputFormatCombination.printStackTrace();
                }
                String string =hanyuPinyinStringArray[0];
                pinyin.append(string);
            } else {
                pinyin.append(charArray[i]);
            }
        }
       return pinyin.toString();
    }

    /**
     * 拼音首字母
     */
    public static String getPinyinszm(String str) {
        String name = str;
        char[] charArray = name.toCharArray();
        StringBuilder pinyin = new StringBuilder();
        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
        // 设置大小写格式
        defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
        // 设置声调格式:
        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        for (int i = 0; i < charArray.length; i++) {
            //匹配中文,非中文转换会转换成null
            if (Character.toString(charArray[i]).matches("[\\u4E00-\\u9FA5]+")) {
                String[] hanyuPinyinStringArray = new String[0];
                try {
                    hanyuPinyinStringArray = PinyinHelper.toHanyuPinyinStringArray(charArray[i], defaultFormat);
                } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
                    badHanyuPinyinOutputFormatCombination.printStackTrace();
                }
                if (hanyuPinyinStringArray != null) {
                    pinyin.append(hanyuPinyinStringArray[0].charAt(0));
                }
            }
        }
        return pinyin.toString();
    }

    public static void main(String[] args) {
//        String str = getPinyin("郑州市");
        String[] strings = PinyinHelper.toHanyuPinyinStringArray("张".charAt(0));
        System.out.println(strings[0]);
    }


    /*方法二:推荐,速度最快
     * 判断是否为整数
     * @param str 传入的字符串
     * @return 是整数返回true,否则返回false
     */

    public static boolean isInteger(String str) {
        Pattern pattern = Pattern.compile("^\\d+(\\.\\d+)?");
        return pattern.matcher(str).matches();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值