| | |
| | | package com.java110.common.util; |
| | | |
| | | |
| | | import org.springframework.util.*; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.Date; |
| | | import java.util.regex.Pattern; |
| | |
| | | */ |
| | | |
| | | public class StringUtil { |
| | | /** |
| | | * Description: 格式化字符串(用户组建表使用) <br> |
| | | * |
| | | * @param name |
| | | * @return String |
| | | */ |
| | | public static String formatString(String name) { |
| | | String s = "0000000000" + name; |
| | | return s.substring(s.length() - 10, s.length()); |
| | | } |
| | | /** |
| | | * Description: 格式化字符串(用户组建表使用) <br> |
| | | * |
| | | * @param name |
| | | * @return String |
| | | */ |
| | | public static String formatString(String name) { |
| | | String s = "0000000000" + name; |
| | | return s.substring(s.length() - 10, s.length()); |
| | | } |
| | | |
| | | /** |
| | | * Description:把GBK转码成ISO8859_1 <br> |
| | | * |
| | | * @param name |
| | | * @return String |
| | | */ |
| | | public static String getStringByISO(String name) { |
| | | try { |
| | | // 防止中文字符出现乱码 |
| | | name = new String(name.getBytes("GBK"), "ISO8859_1"); |
| | | } catch (UnsupportedEncodingException e2) { |
| | | } |
| | | /** |
| | | * Description:把GBK转码成ISO8859_1 <br> |
| | | * |
| | | * @param name |
| | | * @return String |
| | | */ |
| | | public static String getStringByISO(String name) { |
| | | try { |
| | | // 防止中文字符出现乱码 |
| | | name = new String(name.getBytes("GBK"), "ISO8859_1"); |
| | | } catch (UnsupportedEncodingException e2) { |
| | | } |
| | | |
| | | return name; |
| | | } |
| | | return name; |
| | | } |
| | | |
| | | /** |
| | | * Description:获得格式化的url <br> |
| | | * |
| | | * @param url |
| | | * @return String |
| | | */ |
| | | public static String getFormatUrl(String url) { |
| | | if (isNullOrNone(url)) { |
| | | return ""; |
| | | } |
| | | /** |
| | | * Description:获得格式化的url <br> |
| | | * |
| | | * @param url |
| | | * @return String |
| | | */ |
| | | public static String getFormatUrl(String url) { |
| | | if (isNullOrNone(url)) { |
| | | return ""; |
| | | } |
| | | |
| | | if (url.indexOf('?') == -1) { |
| | | return url + '?'; |
| | | } else { |
| | | return url + '&'; |
| | | } |
| | | } |
| | | if (url.indexOf('?') == -1) { |
| | | return url + '?'; |
| | | } else { |
| | | return url + '&'; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Description: 获得字符(byte)的实际长度<br> |
| | | * 1、…<br> |
| | | * 2、…<br> |
| | | * 3、…<br> |
| | | * 4、…<br> |
| | | * |
| | | * @param s |
| | | * @return int |
| | | * @exception/throws |
| | | */ |
| | | public static int lengthByte(String s) { |
| | | int length = 0; |
| | | for (int i = 0; i < s.length(); i++) { |
| | | if (s.charAt(i) <= 127) { |
| | | length++; |
| | | } else { |
| | | length = length + 2; |
| | | } |
| | | } |
| | | return length; |
| | | } |
| | | /** |
| | | * Description: 获得字符(byte)的实际长度<br> |
| | | * 1、…<br> |
| | | * 2、…<br> |
| | | * 3、…<br> |
| | | * 4、…<br> |
| | | * |
| | | * @param s |
| | | * @return int |
| | | * @exception/throws |
| | | */ |
| | | public static int lengthByte(String s) { |
| | | int length = 0; |
| | | for (int i = 0; i < s.length(); i++) { |
| | | if (s.charAt(i) <= 127) { |
| | | length++; |
| | | } else { |
| | | length = length + 2; |
| | | } |
| | | } |
| | | return length; |
| | | } |
| | | |
| | | /** |
| | | * Description: 在jdbc用thin客户端连接oracle里面中文算3个字符<br> |
| | | * |
| | | * @param s |
| | | * @return int |
| | | * @exception/throws |
| | | */ |
| | | public static int lengthByteInPrepared(String s) { |
| | | int length = 0; |
| | | /** |
| | | * Description: 在jdbc用thin客户端连接oracle里面中文算3个字符<br> |
| | | * |
| | | * @param s |
| | | * @return int |
| | | * @exception/throws |
| | | */ |
| | | public static int lengthByteInPrepared(String s) { |
| | | int length = 0; |
| | | |
| | | if (s == null) { |
| | | return length; |
| | | } |
| | | if (s == null) { |
| | | return length; |
| | | } |
| | | |
| | | for (int i = 0; i < s.length(); i++) { |
| | | if (s.charAt(i) <= 127) { |
| | | length++; |
| | | } else { |
| | | length = length + 3; |
| | | } |
| | | } |
| | | return length; |
| | | } |
| | | for (int i = 0; i < s.length(); i++) { |
| | | if (s.charAt(i) <= 127) { |
| | | length++; |
| | | } else { |
| | | length = length + 3; |
| | | } |
| | | } |
| | | return length; |
| | | } |
| | | |
| | | /** |
| | | * Description:判断字段空null <br> |
| | | * |
| | | * @param s |
| | | * @return boolean |
| | | */ |
| | | public static boolean isNullOrNone(String s) { |
| | | if (s == null || "".equals(s.trim())) { |
| | | return true; |
| | | } |
| | | /** |
| | | * Description:判断字段空null <br> |
| | | * |
| | | * @param s |
| | | * @return boolean |
| | | */ |
| | | public static boolean isNullOrNone(String s) { |
| | | if (s == null || "".equals(s.trim())) { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * Description: 判断对象是否为空<br> |
| | | * |
| | | * @param obj |
| | | * @return boolean |
| | | * @exception/throws [违例类型] [违例说明] |
| | | */ |
| | | public static boolean isNullOrNone(Object obj) { |
| | | if (obj == null) { |
| | | return true; |
| | | } |
| | | if (obj instanceof String) { |
| | | return isNullOrNone((String) obj); |
| | | } |
| | | return false; |
| | | } |
| | | /** |
| | | * Description: 判断对象是否为空<br> |
| | | * |
| | | * @param obj |
| | | * @return boolean |
| | | * @exception/throws [违例类型] [违例说明] |
| | | */ |
| | | public static boolean isNullOrNone(Object obj) { |
| | | if (obj == null) { |
| | | return true; |
| | | } |
| | | if (obj instanceof String) { |
| | | return isNullOrNone((String) obj); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * Description:判断字段空null <br> |
| | | * |
| | | * @param ss |
| | | * @return boolean |
| | | */ |
| | | public static boolean isNullOrNone(String[] ss) { |
| | | if (ss == null || ss.length == 0) { |
| | | return true; |
| | | } |
| | | /** |
| | | * Description:判断字段空null <br> |
| | | * |
| | | * @param ss |
| | | * @return boolean |
| | | */ |
| | | public static boolean isNullOrNone(String[] ss) { |
| | | if (ss == null || ss.length == 0) { |
| | | return true; |
| | | } |
| | | |
| | | for (int i = 0; i < ss.length; i++) { |
| | | if (ss[i] == null || "".equals(ss[i].trim())) { |
| | | return true; |
| | | } |
| | | } |
| | | for (int i = 0; i < ss.length; i++) { |
| | | if (ss[i] == null || "".equals(ss[i].trim())) { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public static int countChar(String src, char c) { |
| | | if (isNullOrNone(src)) { |
| | | return 0; |
| | | } |
| | | public static int countChar(String src, char c) { |
| | | if (isNullOrNone(src)) { |
| | | return 0; |
| | | } |
| | | |
| | | int k = 0; |
| | | for (int i = 0; i < src.length(); i++) { |
| | | if (src.charAt(i) == c) { |
| | | k++; |
| | | } |
| | | } |
| | | int k = 0; |
| | | for (int i = 0; i < src.length(); i++) { |
| | | if (src.charAt(i) == c) { |
| | | k++; |
| | | } |
| | | } |
| | | |
| | | return k; |
| | | } |
| | | return k; |
| | | } |
| | | |
| | | /** |
| | | * 把'变成 '' |
| | | * |
| | | * @param src |
| | | * @return |
| | | */ |
| | | public static String oracleString(String src) { |
| | | if (isNullOrNone(src)) { |
| | | return ""; |
| | | } |
| | | /** |
| | | * 把'变成 '' |
| | | * |
| | | * @param src |
| | | * @return |
| | | */ |
| | | public static String oracleString(String src) { |
| | | if (isNullOrNone(src)) { |
| | | return ""; |
| | | } |
| | | |
| | | return src.replaceAll("'", "''"); |
| | | } |
| | | return src.replaceAll("'", "''"); |
| | | } |
| | | |
| | | /** |
| | | * 替换函数 |
| | | * |
| | | * @param |
| | | * source |
| | | * @param |
| | | * find |
| | | * @param |
| | | * rep |
| | | * @return String |
| | | */ |
| | | public static String replace(String source, String find, String rep) { |
| | | String result = source; |
| | | String begin = ""; |
| | | String end = ""; |
| | | int flag; |
| | | /** |
| | | * 替换函数 |
| | | * |
| | | * @param source |
| | | * @param find |
| | | * @param rep |
| | | * @return String |
| | | */ |
| | | public static String replace(String source, String find, String rep) { |
| | | String result = source; |
| | | String begin = ""; |
| | | String end = ""; |
| | | int flag; |
| | | |
| | | flag = result.indexOf(find, 0); |
| | | flag = result.indexOf(find, 0); |
| | | |
| | | while (flag != -1) { |
| | | begin = result.substring(0, flag); |
| | | end = result.substring(flag + (find.length()), result.length()); |
| | | result = begin + rep + end; |
| | | flag = result.indexOf(find, flag + rep.length()); |
| | | } |
| | | return result; |
| | | } |
| | | while (flag != -1) { |
| | | begin = result.substring(0, flag); |
| | | end = result.substring(flag + (find.length()), result.length()); |
| | | result = begin + rep + end; |
| | | flag = result.indexOf(find, flag + rep.length()); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 保护截断 |
| | | * |
| | | * @param s |
| | | * @param begin |
| | | * @param end |
| | | * @return |
| | | */ |
| | | public static String truncate(String s, int begin, int end) { |
| | | if (isNullOrNone(s)) { |
| | | return ""; |
| | | } |
| | | /** |
| | | * 保护截断 |
| | | * |
| | | * @param s |
| | | * @param begin |
| | | * @param end |
| | | * @return |
| | | */ |
| | | public static String truncate(String s, int begin, int end) { |
| | | if (isNullOrNone(s)) { |
| | | return ""; |
| | | } |
| | | |
| | | if (begin < 0) { |
| | | return ""; |
| | | } |
| | | if (begin < 0) { |
| | | return ""; |
| | | } |
| | | |
| | | if (begin >= end) { |
| | | return ""; |
| | | } |
| | | if (begin >= end) { |
| | | return ""; |
| | | } |
| | | |
| | | s = s.trim(); |
| | | if (begin >= s.length()) { |
| | | return ""; |
| | | } |
| | | s = s.trim(); |
| | | if (begin >= s.length()) { |
| | | return ""; |
| | | } |
| | | |
| | | if (end >= s.length()) { |
| | | return s; |
| | | } else { |
| | | return s.substring(begin, end); |
| | | } |
| | | } |
| | | if (end >= s.length()) { |
| | | return s; |
| | | } else { |
| | | return s.substring(begin, end); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * Description: 判断是否为数字<br> |
| | | * 1、…<br> |
| | | * 2、…<br> |
| | | * 3、…<br> |
| | | * 4、…<br> |
| | | * |
| | | * @param str |
| | | * @return boolean |
| | | * @exception/throws [违例类型] [违例说明] |
| | | */ |
| | | public static boolean isNumber(String str) { |
| | | if (null == str || "".equals(str)) { |
| | | return false; |
| | | } else { |
| | | return Pattern.matches("^[0-9]+$", str); |
| | | } |
| | | } |
| | | /** |
| | | * Description: 判断是否为数字<br> |
| | | * 1、…<br> |
| | | * 2、…<br> |
| | | * 3、…<br> |
| | | * 4、…<br> |
| | | * |
| | | * @param str |
| | | * @return boolean |
| | | * @exception/throws [违例类型] [违例说明] |
| | | */ |
| | | public static boolean isNumber(String str) { |
| | | if (null == str || "".equals(str)) { |
| | | return false; |
| | | } else { |
| | | return Pattern.matches("^[0-9]+$", str); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Description: 获得字符(byte)的实际长度<br> |
| | | * 1、…<br> |
| | | * 2、…<br> |
| | | * 3、…<br> |
| | | * 4、…<br> |
| | | * |
| | | * @param s |
| | | * @return int |
| | | * @exception/throws |
| | | */ |
| | | public static int realLength(String s) { |
| | | if (null == s || "".equals(s)) { |
| | | return 0; |
| | | } else { |
| | | return s.getBytes().length; |
| | | } |
| | | } |
| | | /** |
| | | * Description: 获得字符(byte)的实际长度<br> |
| | | * 1、…<br> |
| | | * 2、…<br> |
| | | * 3、…<br> |
| | | * 4、…<br> |
| | | * |
| | | * @param s |
| | | * @return int |
| | | * @exception/throws |
| | | */ |
| | | public static int realLength(String s) { |
| | | if (null == s || "".equals(s)) { |
| | | return 0; |
| | | } else { |
| | | return s.getBytes().length; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Description: 检查非法字符<br> |
| | | */ |
| | | public static boolean isUnlawfulChar(String s) { |
| | | if (null == s || "".equals(s)) { |
| | | return false; |
| | | } else { |
| | | return Pattern.matches("^[^`~@#\\$%\\^&\\*\\(\\)=\\!\\+\\\\/\\|<>\\?;\\:\\.'\"\\{\\}\\[\\]??, ]*$", s); |
| | | } |
| | | } |
| | | /** |
| | | * Description: 检查非法字符<br> |
| | | */ |
| | | public static boolean isUnlawfulChar(String s) { |
| | | if (null == s || "".equals(s)) { |
| | | return false; |
| | | } else { |
| | | return Pattern.matches("^[^`~@#\\$%\\^&\\*\\(\\)=\\!\\+\\\\/\\|<>\\?;\\:\\.'\"\\{\\}\\[\\]??, ]*$", s); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * Description: 判断是否为字母<br> |
| | | * 1、…<br> |
| | | * 2、…<br> |
| | | * 3、…<br> |
| | | * 4、…<br> |
| | | * |
| | | * @param str |
| | | * @return boolean |
| | | * @exception/throws [违例类型] [违例说明] |
| | | */ |
| | | public static boolean isLetter(String str) { |
| | | if (null == str || "".equals(str)) { |
| | | return false; |
| | | } else { |
| | | return Pattern.matches("^[A-Za-z]+$", str); |
| | | } |
| | | } |
| | | /** |
| | | * Description: 判断是否为字母<br> |
| | | * 1、…<br> |
| | | * 2、…<br> |
| | | * 3、…<br> |
| | | * 4、…<br> |
| | | * |
| | | * @param str |
| | | * @return boolean |
| | | * @exception/throws [违例类型] [违例说明] |
| | | */ |
| | | public static boolean isLetter(String str) { |
| | | if (null == str || "".equals(str)) { |
| | | return false; |
| | | } else { |
| | | return Pattern.matches("^[A-Za-z]+$", str); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * (source != null) ? source : "";相当于oracle的nvl函数 |
| | | * |
| | | * @param source |
| | | * @return String |
| | | */ |
| | | public static String nvl(String source) { |
| | | return (source != null) ? source.trim() : ""; |
| | | } |
| | | /** |
| | | * (source != null) ? source : "";相当于oracle的nvl函数 |
| | | * |
| | | * @param source |
| | | * @return String |
| | | */ |
| | | public static String nvl(String source) { |
| | | return (source != null) ? source.trim() : ""; |
| | | } |
| | | |
| | | /** |
| | | * Method nvl. |
| | | * |
| | | * @param source |
| | | * String |
| | | * @param defaultString |
| | | * String |
| | | * @return String |
| | | */ |
| | | public static String nvl(String source, String defaultString) { |
| | | return (source != null) ? source.trim() : defaultString; |
| | | } |
| | | /** |
| | | * Method nvl. |
| | | * |
| | | * @param source String |
| | | * @param defaultString String |
| | | * @return String |
| | | */ |
| | | public static String nvl(String source, String defaultString) { |
| | | return (source != null) ? source.trim() : defaultString; |
| | | } |
| | | |
| | | /** |
| | | * 实现对符合条件的字符串的反转 |
| | | * |
| | | * @param str |
| | | * 原始字符串 |
| | | * @return 经过反转处理后的字符串 |
| | | */ |
| | | public static String reverseString(String str) { |
| | | StringBuffer resultStringBuffer = new StringBuffer(); |
| | | String[] allStr = str.split(" "); |
| | | StringBuffer sb = new StringBuffer(); // 保存需要进行反转的字符串 |
| | | for (int i = 0; i < allStr.length; i++) { |
| | | if (meetReverseCondition(allStr[i])) { |
| | | sb.delete(0, sb.length()); |
| | | /** |
| | | * 实现对符合条件的字符串的反转 |
| | | * |
| | | * @param str 原始字符串 |
| | | * @return 经过反转处理后的字符串 |
| | | */ |
| | | public static String reverseString(String str) { |
| | | StringBuffer resultStringBuffer = new StringBuffer(); |
| | | String[] allStr = str.split(" "); |
| | | StringBuffer sb = new StringBuffer(); // 保存需要进行反转的字符串 |
| | | for (int i = 0; i < allStr.length; i++) { |
| | | if (meetReverseCondition(allStr[i])) { |
| | | sb.delete(0, sb.length()); |
| | | |
| | | // 将需要反转的字符串反转后添加到结果字符串 |
| | | resultStringBuffer.append(sb.append(allStr[i]).reverse()).append(" "); |
| | | } else { |
| | | resultStringBuffer.append(allStr[i]).append(" "); |
| | | } |
| | | } |
| | | // 将需要反转的字符串反转后添加到结果字符串 |
| | | resultStringBuffer.append(sb.append(allStr[i]).reverse()).append(" "); |
| | | } else { |
| | | resultStringBuffer.append(allStr[i]).append(" "); |
| | | } |
| | | } |
| | | |
| | | return resultStringBuffer.deleteCharAt(resultStringBuffer.length() - 1).toString(); |
| | | } |
| | | return resultStringBuffer.deleteCharAt(resultStringBuffer.length() - 1).toString(); |
| | | } |
| | | |
| | | /** |
| | | * 判断字符串是否符合反转条件 本函数被reverseString(String str)调用 |
| | | * |
| | | * @param str |
| | | * 需要进行反转处理的字符串 |
| | | * @return true 符合反转条件 false 不符合反转条件 |
| | | */ |
| | | private static boolean meetReverseCondition(String str) { |
| | | // 如果字符串是以'*'开头并且长度大于1,并且第二个字符是英文,汉字或数字 |
| | | return (str.charAt(0) == '*') && (str.length() > 1) && Character.isLetterOrDigit(str.charAt(1)); |
| | | } |
| | | /** |
| | | * 判断字符串是否符合反转条件 本函数被reverseString(String str)调用 |
| | | * |
| | | * @param str 需要进行反转处理的字符串 |
| | | * @return true 符合反转条件 false 不符合反转条件 |
| | | */ |
| | | private static boolean meetReverseCondition(String str) { |
| | | // 如果字符串是以'*'开头并且长度大于1,并且第二个字符是英文,汉字或数字 |
| | | return (str.charAt(0) == '*') && (str.length() > 1) && Character.isLetterOrDigit(str.charAt(1)); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * 取字符串的前maxLength长度的字串(一个中文字符为2个长度) |
| | | * |
| | | * |
| | | * @param str |
| | | * @param maxLength |
| | | * @return String throws |
| | | */ |
| | | public static String splitStr(String str, int maxLength) { |
| | | if (maxLength <= 0) { |
| | | return ""; |
| | | } |
| | | String result = str; |
| | | byte[] bytes = str.getBytes(); |
| | | if (bytes.length > maxLength) { |
| | | /** |
| | | * 取字符串的前maxLength长度的字串(一个中文字符为2个长度) |
| | | * |
| | | * @param str |
| | | * @param maxLength |
| | | * @return String throws |
| | | */ |
| | | public static String splitStr(String str, int maxLength) { |
| | | if (maxLength <= 0) { |
| | | return ""; |
| | | } |
| | | String result = str; |
| | | byte[] bytes = str.getBytes(); |
| | | if (bytes.length > maxLength) { |
| | | |
| | | result = new String(bytes, 0, maxLength); |
| | | if (!result.substring(result.length() - 1).equals(str.substring(result.length() - 1, result.length()))) { |
| | | result = new String(bytes, 0, maxLength - 1); |
| | | } |
| | | } |
| | | result = new String(bytes, 0, maxLength); |
| | | if (!result.substring(result.length() - 1).equals(str.substring(result.length() - 1, result.length()))) { |
| | | result = new String(bytes, 0, maxLength - 1); |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 判断是否存在 |
| | | * |
| | | * @param filterStr |
| | | * @param id |
| | | * @return boolean |
| | | */ |
| | | public static boolean isExists(String filterStr, String id) { |
| | | String[] filterTag = filterStr.split(","); |
| | | for (int i = 0; i < filterTag.length; i++) { |
| | | if (id.equals(filterTag[i])) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | /** |
| | | * 判断是否存在 |
| | | * |
| | | * @param filterStr |
| | | * @param id |
| | | * @return boolean |
| | | */ |
| | | public static boolean isExists(String filterStr, String id) { |
| | | String[] filterTag = filterStr.split(","); |
| | | for (int i = 0; i < filterTag.length; i++) { |
| | | if (id.equals(filterTag[i])) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 格式化时间 |
| | | * |
| | | * @param |
| | | * dt |
| | | * @param |
| | | * format |
| | | * @return String |
| | | */ |
| | | public static String getTime(Date dt, String format) { |
| | | String time = null; |
| | | java.text.DateFormat df = new java.text.SimpleDateFormat(format); |
| | | time = df.format(dt); |
| | | /** |
| | | * 格式化时间 |
| | | * |
| | | * @param dt |
| | | * @param format |
| | | * @return String |
| | | */ |
| | | public static String getTime(Date dt, String format) { |
| | | String time = null; |
| | | java.text.DateFormat df = new java.text.SimpleDateFormat(format); |
| | | time = df.format(dt); |
| | | |
| | | return time; |
| | | } |
| | | return time; |
| | | } |
| | | |
| | | public static String[] stringToArray(String str, String start, String end, String split) { |
| | | if (null == str || "".equals(str)) |
| | | return null; |
| | | if (str.indexOf(start) == -1 || str.indexOf(end) == -1 || str.indexOf(split) == -1) |
| | | return new String[] { str }; |
| | | return str.substring(str.indexOf(start) + 1, str.indexOf(end)).split(split); |
| | | } |
| | | public static String[] stringToArray(String str, String start, String end, String split) { |
| | | if (null == str || "".equals(str)) |
| | | return null; |
| | | if (str.indexOf(start) == -1 || str.indexOf(end) == -1 || str.indexOf(split) == -1) |
| | | return new String[]{str}; |
| | | return str.substring(str.indexOf(start) + 1, str.indexOf(end)).split(split); |
| | | } |
| | | |
| | | /** |
| | | * 判断字符串是否为null或者空 |
| | | * |
| | | * @param str |
| | | * @return |
| | | */ |
| | | public static boolean isEmpty(String str) { |
| | | return str == null || "".equals(str); |
| | | } |
| | | /** |
| | | * 判断字符串是否为null或者空 |
| | | * |
| | | * @param str |
| | | * @return |
| | | */ |
| | | public static boolean isEmpty(String str) { |
| | | return str == null || "".equals(str); |
| | | } |
| | | |
| | | /** |
| | | * 获取指定长度(按字节长度获取)的字符串,中文算2个字节长度,兼容oracle的 varchar2长度计算方式 |
| | | * |
| | | * @param src |
| | | * 源字符串 |
| | | * @param length |
| | | * 长度 |
| | | * @return |
| | | */ |
| | | public static String getSubStr(String src, int length) { |
| | | if (StringUtil.isEmpty(src)) { |
| | | return null; |
| | | } |
| | | byte[] b = src.getBytes(); |
| | | if (b.length > length) { |
| | | byte[] s = new byte[length]; |
| | | for (int i = 0; i < length; i++) { |
| | | s[i] = b[i]; |
| | | } |
| | | return new String(s); |
| | | } else { |
| | | return src; |
| | | } |
| | | } |
| | | /** |
| | | * 获取指定长度(按字节长度获取)的字符串,中文算2个字节长度,兼容oracle的 varchar2长度计算方式 |
| | | * |
| | | * @param src 源字符串 |
| | | * @param length 长度 |
| | | * @return |
| | | */ |
| | | public static String getSubStr(String src, int length) { |
| | | if (StringUtil.isEmpty(src)) { |
| | | return null; |
| | | } |
| | | byte[] b = src.getBytes(); |
| | | if (b.length > length) { |
| | | byte[] s = new byte[length]; |
| | | for (int i = 0; i < length; i++) { |
| | | s[i] = b[i]; |
| | | } |
| | | return new String(s); |
| | | } else { |
| | | return src; |
| | | } |
| | | } |
| | | |
| | | public static String truncateMessage(String description, int length) { |
| | | org.springframework.util.Assert.state(length > 0); |
| | | if ((description != null) && (description.length() > length)) { |
| | | return description.substring(0, length); |
| | | } |
| | | |
| | | return description; |
| | | } |
| | | } |