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; }