String限定类型的HashMap以及一个String工具类

来源:互联网 发布:文化自信 知乎 编辑:程序博客网 时间:2024/05/22 00:41

String限定类型的HashMap以及一个String工具类

1.StringHashMap

// importimport test.alibabaSourceCode.StringUtils;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import java.util.TimeZone;public class StringHashMap extends HashMap<String, String> {    private static final long serialVersionUID = -1277791390393392630L;    public StringHashMap() {    }    public StringHashMap(Map<? extends String, ? extends String> m) {        super(m);    }    public String put(String key, Object value) {        String strValue;        if (value == null) {            strValue = null;        } else if (value instanceof String) {            strValue = (String) value;        } else if (value instanceof Integer) {            strValue = ((Integer) value).toString();        } else if (value instanceof Long) {            strValue = ((Long) value).toString();        } else if (value instanceof Float) {            strValue = ((Float) value).toString();        } else if (value instanceof Double) {            strValue = ((Double) value).toString();        } else if (value instanceof Boolean) {            strValue = ((Boolean) value).toString();        } else if (value instanceof Date) {            DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");            format.setTimeZone(TimeZone.getTimeZone("GMT+8"));            strValue = format.format((Date) value);        } else {            strValue = value.toString();        }        return this.put(key, strValue);    }    // StringUtils在下面    public String put(String key, String value) {        return StringUtils.areNotEmpty(key, value) ? (String) super.put(key, value) : null;    }}

2.StringUtils

// import - no importpublic abstract class StringUtils {    private StringUtils() {    }    // 空判断    public static boolean isEmpty(String value) {        int strLen;        if (value != null && (strLen = value.length()) != 0) {            for (int i = 0; i < strLen; ++i) {                if (!Character.isWhitespace(value.charAt(i))) {                    return false;                }            }            return true;        } else {            return true;        }    }    // 数字判断    public static boolean isNumeric(Object obj) {        if (obj == null) {            return false;        } else {            char[] chars = obj.toString().toCharArray();            int length = chars.length;            if (length < 1) {                return false;            } else {                int i = 0;                if (length > 1 && chars[0] == 45) {                    i = 1;                }                while (i < length) {                    if (!Character.isDigit(chars[i])) {                        return false;                    }                    ++i;                }                return true;            }        }    }    // 字符串集合是否都为空判断    public static boolean areNotEmpty(String... values) {        boolean result = true;        if (values != null && values.length != 0) {            String[] arr$ = values;            int len$ = values.length;            for (int i$ = 0; i$ < len$; ++i$) {                String value = arr$[i$];                result &= !isEmpty(value);            }        } else {            result = false;        }        return result;    }    // unicode转中文    public static String unicodeToChinese(String unicode) {        StringBuilder out = new StringBuilder();        if (!isEmpty(unicode)) {            for (int i = 0; i < unicode.length(); ++i) {                out.append(unicode.charAt(i));            }        }        return out.toString();    }    // 去掉XML中的无效字符    public static String stripNonValidXMLCharacters(String input) {        if (input != null && !"".equals(input)) {            StringBuilder out = new StringBuilder();            for (int i = 0; i < input.length(); ++i) {                char current = input.charAt(i);                if (current == 9 || current == 10 || current == 13 || current >= 32 && current <= '\ud7ff' || current >= '\ue000' && current <= '�' || current >= 65536 && current <= 1114111) {                    out.append(current);                }            }            return out.toString();        } else {            return "";        }    }}