字串工具類-StringUtils
阿新 • • 發佈:2019-01-29
在專案中哪裡會用到,看下圖程式碼:
我們通過工具類來判斷是否有id傳過來。@RequestMapping(value = "/save", method = RequestMethod.POST) @ResponseBody public AjaxJson doSave(SysRole sysRole, HttpServletRequest request, HttpServletResponse response, BindingResult result) { AjaxJson ajaxJson = new AjaxJson(); ajaxJson ajaxJson.success("儲存成功"); if (hasError(sysRole, result)) { // 錯誤提示 String errorMsg = errorMsg(result); if (!StringUtils.isEmpty(errorMsg)) { ajaxJson.fail(errorMsg); } else { ajaxJson.fail("儲存失敗"); } return ajaxJson; } try { if (StringUtils.isEmpty(sysRole.getId())) { sysRoleService.insert(sysRole); } else { sysRoleService.insertOrUpdate(sysRole); } } catch (Exception e) { e.printStackTrace(); ajaxJson.fail("儲存失敗!<br />原因:" + e.getMessage()); } return ajaxJson; }
StringUtils工具類程式碼,如下:
package cn.jeeweb.core.utils; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.List; import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringEscapeUtils; import com.alibaba.fastjson.JSONObject; public class StringUtils extends org.apache.commons.lang3.StringUtils { private static final String CHARSET_NAME = "UTF-8"; // 首字母轉小寫 public static String toLowerCaseFirstOne(String s) { if (Character.isLowerCase(s.charAt(0))) return s; else return (new StringBuilder()).append(Character.toLowerCase(s.charAt(0))).append(s.substring(1)).toString(); } // 首字母轉大寫 public static String toUpperCaseFirstOne(String s) { if (Character.isUpperCase(s.charAt(0))) return s; else return (new StringBuilder()).append(Character.toUpperCase(s.charAt(0))).append(s.substring(1)).toString(); } /** * 判斷是否是空字串 null和"" 都返回 true * * @author Robin Chang * @param s * @return */ public static boolean isEmpty(String s) { if (s != null && !s.equals("")) { return false; } return true; } public static void printJson(HttpServletResponse response, Object content) { try { response.reset(); response.setContentType("application/json"); response.setHeader("Cache-Control", "no-store"); response.setCharacterEncoding("UTF-8"); PrintWriter pw = response.getWriter(); String json = JSONObject.toJSONString(content); pw.print(json); } catch (Exception e) { e.printStackTrace(); } } public static void printJson(HttpServletResponse response, String content) { try { response.reset(); response.setContentType("application/json"); response.setHeader("Cache-Control", "no-store"); response.setCharacterEncoding("UTF-8"); PrintWriter pw = response.getWriter(); pw.write(content); pw.flush(); } catch (Exception e) { e.printStackTrace(); } } /** * 判斷是否為數字 * * @Title: isNumeric * @Description: 判斷是否為數字 * @param str * @return * @return: boolean */ public static boolean isNumeric(String str) { for (int i = 0; i < str.length(); i++) { if (!Character.isDigit(str.charAt(i))) { return false; } } return true; } /** * * @title: camelToUnderline * @description: 駝峰轉下劃線 * @param param * @return * @return: String */ public static String camelToUnderline(String param) { if (param == null || "".equals(param.trim())) { return ""; } int len = param.length(); StringBuilder sb = new StringBuilder(len); for (int i = 0; i < len; i++) { char c = param.charAt(i); if (Character.isUpperCase(c)) { sb.append('_'); sb.append(Character.toLowerCase(c)); } else { sb.append(c); } } return sb.toString(); } /** * * @title: underlineToCamel * @description:下劃線轉駝峰 * @param param * @return * @return: String */ public static String underlineToCamel(String param) { if (param == null || "".equals(param.trim())) { return ""; } int len = param.length(); StringBuilder sb = new StringBuilder(len); for (int i = 0; i < len; i++) { char c = param.charAt(i); if (c == '_') { if (++i < len) { sb.append(Character.toUpperCase(param.charAt(i))); } } else { sb.append(c); } } return sb.toString(); } /** * A hashing method that changes a string (like a URL) into a hash suitable * for using as a disk filename. */ public static String hashKeyForDisk(String key) { String cacheKey; try { final MessageDigest mDigest = MessageDigest.getInstance("MD5"); mDigest.update(key.getBytes()); cacheKey = bytesToHexString(mDigest.digest()); } catch (NoSuchAlgorithmException e) { cacheKey = String.valueOf(key.hashCode()); } return cacheKey; } private static String bytesToHexString(byte[] bytes) { // http://stackoverflow.com/questions/332079 StringBuilder sb = new StringBuilder(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(0xFF & bytes[i]); if (hex.length() == 1) { sb.append('0'); } sb.append(hex); } return sb.toString(); } /** * * @title: getExtensionName * @description: Java檔案操作 獲取副檔名 * @param filename * @return * @return: String */ public static String getExtensionName(String filename) { if ((filename != null) && (filename.length() > 0)) { int dot = filename.lastIndexOf('.'); if ((dot > -1) && (dot < (filename.length() - 1))) { return filename.substring(dot + 1); } } return filename; } /** * * @title: getFileNameNoEx * @description: Java檔案操作 獲取不帶副檔名的檔名 * @param filename * @return * @return: String */ public static String getFileNameNoEx(String filename) { if ((filename != null) && (filename.length() > 0)) { int dot = filename.lastIndexOf('.'); if ((dot > -1) && (dot < (filename.length()))) { return filename.substring(0, dot); } } return filename; } public static String randomUUID() { UUID uuid = UUID.randomUUID(); return uuid.toString().replace("-", ""); } public static boolean isNumericAndDot(String str) { if (str == null || str.trim().equals("")) { return false; } Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]*([Ee]{1}[0-9]+)?"); Matcher isNum = pattern.matcher(str); if (!isNum.matches()) { return false; } return true; } /** * 去除字串首尾出現的某個字元. * * @param source * 源字串. * @param element * 需要去除的字元. * @return String. */ public static String trimFirstAndLastChar(String source, char element) { boolean beginIndexFlag = true; boolean endIndexFlag = true; do { int beginIndex = source.indexOf(element) == 0 ? 1 : 0; int endIndex = source.lastIndexOf(element) + 1 == source.length() ? source.lastIndexOf(element) : source.length(); source = source.substring(beginIndex, endIndex); beginIndexFlag = (source.indexOf(element) == 0); endIndexFlag = (source.lastIndexOf(element) + 1 == source.length()); } while (beginIndexFlag || endIndexFlag); return source; } /** * 縮略字串(不區分中英文字元) * * @param str * 目標字串 * @param length * 擷取長度 * @return */ public static String abbr(String str, int length) { if (str == null) { return ""; } try { StringBuilder sb = new StringBuilder(); int currentLength = 0; for (char c : replaceHtml(StringEscapeUtils.unescapeHtml4(str)).toCharArray()) { currentLength += String.valueOf(c).getBytes("GBK").length; if (currentLength <= length - 3) { sb.append(c); } else { sb.append("..."); break; } } return sb.toString(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return ""; } /** * 替換掉HTML標籤方法 */ public static String replaceHtml(String html) { if (isBlank(html)) { return ""; } String regEx = "<.+?>"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(html); String s = m.replaceAll(""); return s; } /** * 轉換為位元組陣列 * * @param bytes * @return */ public static String toString(byte[] bytes){ try { return new String(bytes, CHARSET_NAME); } catch (UnsupportedEncodingException e) { return EMPTY; } } /** * 轉換為位元組陣列 * @param str * @return */ public static byte[] getBytes(String str){ if (str != null){ try { return str.getBytes(CHARSET_NAME); } catch (UnsupportedEncodingException e) { return null; } }else{ return null; } } public static <T> String toFormatterValue(List<T> datas, String label, String value) { String formaterValues = ""; for (Object data : datas) { if (!StringUtils.isEmpty(formaterValues)) { formaterValues+=";"; } String labelValue = Reflections.getFieldValue(data, label) + ""; String valueValue = Reflections.getFieldValue(data, value) + ""; String formaterValue = valueValue + ":" + labelValue; formaterValues+=formaterValue; } return formaterValues; } }