package com.app.mvc.util; import com.google.common.base.Splitter; import com.google.common.collect.Lists; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ClassUtils; import org.apache.commons.lang3.StringUtils; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; /** * Created by jimin on 15/12/11. */ public class StringUtil { public static final String LINE_SEP = System.getProperty("line.SEPARATOR"); public static boolean isEmpty(String string) { return string == null || string.length() == 0; } public static boolean isWhitespace(char c) { return c == 32; } public static boolean isFullHalfWidthSpace(char c) { return c == 12288 || c == 32; } public static String rtrim(String str) { if (str == null) { return null; } else { int length; for (length = str.length(); 0 < length && isWhitespace(str.charAt(length - 1)); --length) { ; } return length < str.length() ? str.substring(0, length) : str; } } public static String ltrim(String str) { if (str == null) { return null; } else { int start = 0; int length; for (length = str.length(); start < length && isWhitespace(str.charAt(start)); ++start) { ; } return start > 0 ? str.substring(start, length) : str; } } public static String trim(String str) { return StringUtils.trim(str); } public static String dump(Map<?, ?> map) { if (map == null) { return null; } else { StringBuilder sb = new StringBuilder(); sb.append(LINE_SEP); sb.append("Map{"); sb.append(LINE_SEP); for (Iterator it = map.keySet().iterator(); it.hasNext(); sb.append(LINE_SEP)) { Object key = it.next(); String appendKey = null; if (key == null) { appendKey = "null"; } else { appendKey = key.toString(); } sb.append(appendKey); sb.append('='); Object valueObj = map.get(key); if (valueObj == null) { sb.append("null"); } else if (valueObj.getClass().isArray()) { sb.append(getArraysStr((Object[]) ((Object[]) valueObj))); } else { sb.append(valueObj.toString()); } } sb.append("}"); return sb.toString(); } } public static String getArraysStr(Object[] arrayObj) { return ArrayUtils.toString(arrayObj, (String) null); } public static String getExtension(String name) { int index = name.lastIndexOf(46); return index < 0 ? "" : name.substring(index); } public static String toShortClassName(String longClassName) { return ClassUtils.getShortClassName(longClassName); } public static String toHexString(byte[] byteArray) { return toHexString(byteArray, (String) null); } public static String toHexString(byte[] byteArray, String delim) { if (delim == null) { delim = ""; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < byteArray.length; ++i) { if (i > 0) { sb.append(delim); } String hex = Integer.toHexString(byteArray[i] & 255).toLowerCase(); if (hex.length() < 2) { sb.append("0"); } sb.append(hex); } return sb.toString(); } public static String toHexString(Integer i) { return toHexString(ByteUtil.toByteArray(i)); } public static String toHexString(Long l) { return toHexString(ByteUtil.toByteArray(l)); } public static String capitalizeInitial(String str) { if (str != null && !"".equals(str)) { char[] chars = str.toCharArray(); chars[0] = Character.toUpperCase(chars[0]); return new String(chars); } else { return str; } } public static String encodeURL(String s, String enc) { try { return s == null ? null : URLEncoder.encode(s, enc); } catch (UnsupportedEncodingException var3) { return null; } } public static String encodeURL(String s) { return encodeURL(s, "UTF-8"); } public static String decodeURL(String s, String enc) { try { return s == null ? null : URLDecoder.decode(s, enc); } catch (UnsupportedEncodingException var3) { return null; } } public static String decodeURL(String s) { return decodeURL(s, "UTF-8"); } public static String filter(String str) { char[] cbuf = str.toCharArray(); StringBuilder sbui = new StringBuilder(); for (int i = 0; i < cbuf.length; ++i) { if (cbuf[i] == 38) { sbui.append("&"); } else if (cbuf[i] == 60) { sbui.append("<"); } else if (cbuf[i] == 62) { sbui.append(">"); } else if (cbuf[i] == 34) { sbui.append("""); } else if (cbuf[i] == 39) { sbui.append("'"); } else { sbui.append(cbuf[i]); } } return sbui.toString(); } public static int getByteLength(String value, String encoding) throws UnsupportedEncodingException { if (value != null && !"".equals(value)) { Object bytes = null; byte[] bytes1; if (encoding != null && !"".equals(encoding)) { try { bytes1 = value.getBytes(encoding); } catch (UnsupportedEncodingException var4) { throw var4; } } else { bytes1 = value.getBytes(); } return bytes1 == null ? 0 : bytes1.length; } else { return 0; } } public static String join(Collection<? extends CharSequence> coll, String delimiter) { if (coll == null) { return null; } else if (coll.isEmpty()) { return ""; } else { Iterator iter = coll.iterator(); StringBuilder sb = new StringBuilder((CharSequence) iter.next()); while (iter.hasNext()) { sb.append(delimiter); sb.append((CharSequence) iter.next()); } return sb.toString(); } } public static String join(CharSequence[] array, String delimiter) { if (array == null) { return null; } else if (array.length == 0) { return ""; } else { StringBuilder sb = new StringBuilder(array[0]); for (int i = 1; i < array.length; ++i) { sb.append(delimiter); sb.append(array[i]); } return sb.toString(); } } public static List<Integer> splierToListInt(String str) { List<String> strList = Splitter.on(",").splitToList(str); List<Integer> list = Lists.newArrayList(); if (CollectionUtils.isEmpty(strList)) { return list; } for (String s : strList) { list.add(Integer.parseInt(s)); } return list; } }