92. 字符串工具類

1. 字符串工具類

 

package cn.ma.mybatiesplus.utils;

import lombok.extern.slf4j.Slf4j;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
import org.springframework.util.StringUtils;

import java.util.List;

/**
 * 字符串工具類
 **/
@Slf4j
public class StringUtils2 {
    /**
     * 1.判斷字符串是否爲空  如果爲空 返回徐亞的數據
     *
     * @param source
     * @param target
     * @return
     */
    public static String nvs(String source, String target) {
        if (!StringUtils.hasText(source)) {
            return target;
        } else {
            return source.trim();
        }
    }

    /**
     * 2.如果源字符串爲null ""  其他返回空字符串
     *
     * @param source
     * @return
     */
    public static String nvs(String source) {
        if (!StringUtils.hasText(source)) {
            return "";
        } else {
            return source.trim();
        }
    }

    /**
     * 3.將數組轉爲字符串
     *
     * @param arr       數組
     * @param separator 分隔符
     * @return
     */
    public static String arrToString(String[] arr, String separator) {
        return String.join(separator, arr);
    }

    /**
     * 4.list轉爲字符串
     *
     * @param list
     * @param separator 分隔符
     * @return
     */
    public static String listToString(List<String> list, String separator) {
        return String.join(separator, list);
    }

    /**
     * 5.漢字轉拼音
     **/
    public static String hanziToPinyin(String hanzi) {
        StringBuilder pinyin = new StringBuilder();
        for (int i = 0; i < hanzi.length(); i++) {
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
            char c = hanzi.charAt(i);
            String[] pinyinArray = null;
            try {
                pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, defaultFormat);
            } catch (BadHanyuPinyinOutputFormatCombination e) {
                log.error("漢字轉字符串錯誤:{}", e);
            }
            if (pinyinArray != null && pinyinArray.length > 0) {
                pinyin.append(pinyinArray[0]);
            } else if (c != ' ') {
                pinyin.append(hanzi.charAt(i));
            }
        }
        return pinyin.toString().trim().toLowerCase();
    }

}

 

/**
 * 6.使用md5的算法進行加密
 */
public static String md5(String plainText) {
    byte[] secretBytes = null;
    try {
        secretBytes = MessageDigest.getInstance("md5").digest(
                plainText.getBytes());
    } catch (NoSuchAlgorithmException e) {
        throw new RuntimeException("沒有md5這個算法!");
    }
    String md5code = new BigInteger(1, secretBytes).toString(16);// 16進制數字
    // 如果生成數字未滿32位,需要前面補0
    for (int i = 0; i < 32 - md5code.length(); i++) {
        md5code = "0" + md5code;
    }
    return md5code;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章