package utils; import java.util.Locale; import java.util.regex.Pattern; public class StringUtils { /** * 将string按需要格式化,前面加缩进符,后面加换行符 * @param tabNum 缩进量 * @param srcString * @return */ public static String formatSingleLine(int tabNum, String srcString) { StringBuilder sb = new StringBuilder(); for(int i=0; i<tabNum; i++) { sb.append("\t"); } sb.append(srcString); sb.append("\n"); return sb.toString(); } public static String firstToUpperCase(String key) { return key.substring(0, 1).toUpperCase(Locale.CHINA) + key.substring(1); } public static String gapToCamel(String src) { StringBuilder sb = new StringBuilder(); for(String s : src.trim().split(" ")) { sb.append(firstToUpperCase(s)); } return sb.toString(); } /** * 驼峰转下划线命名 */ public static String camelTo_(String src) { StringBuilder sb = new StringBuilder(); StringBuilder sbWord = new StringBuilder(); char[] chars = src.trim().toCharArray(); for (int i = 0; i < chars.length; i++) { char c = chars[i]; if(c >= 'A' && c <= 'Z') { // 一旦遇到大写单词,保存之前已有字符组成的单词 if(sbWord.length() > 0) { if(sb.length() > 0) { sb.append("_"); } sb.append(sbWord.toString()); } sbWord = new StringBuilder(); } sbWord.append(c); } if(sbWord.length() > 0) { if(sb.length() > 0) { sb.append("_"); } sb.append(sbWord.toString()); } return sb.toString(); } public static boolean hasChinese(String s) { String regexChinese = "[\u4e00-\u9fa5]+"; Pattern patternChinese = Pattern.compile(regexChinese); return patternChinese.matcher(s).find(); } public static boolean isEmpty(String s) { return s == null || s.length() == 0; } }