package foundation.util; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.net.URLDecoder; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Util { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); private static SimpleDateFormat sdfY = new SimpleDateFormat("yyyy"); private static SimpleDateFormat sdfM = new SimpleDateFormat("MM"); private static SimpleDateFormat sdfD = new SimpleDateFormat("dd"); public static final String String_Return = "\r\n"; public static String NORMALFORMAT = "YYYY-MM-dd"; public static String MONTHLYFORMAT = "YYYYMM"; //@he public static String ocrJson(String jsonStr) { if (isEmpty(jsonStr)) { return jsonStr; } jsonStr = jsonStr.replace("'", "‘"); return jsonStr; } //@he 清除影响json, 数据库保存的数据 public static String validJson(String jsonStr) { if (isEmpty(jsonStr)) { return jsonStr; } jsonStr = jsonStr.replace("'", "‘"); jsonStr = jsonStr.replace("\"", "“"); return jsonStr; } public static boolean isMatchByRule(String ruleStr, String str) throws Exception { String regExp = ruleStr; Pattern p = Pattern.compile(regExp, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(str); return m.matches(); } public static List objToList(Object obj, Class zlass) throws Exception { List list = new ArrayList(); if (obj instanceof ArrayList) { for (Object o : (List) obj) { list.add(zlass.cast(o)); } return list; } return null; } //@he将字符串前面的0都去掉 public static String removeFirstZero(String str) { str = str.trim(); if (isEmptyStr(str)) { return str; } return str.replaceFirst("^0*", ""); } //@he 得到当前日期之后或之前的日期 public static String getDateByDay(int day) { Calendar currentDate = Calendar.getInstance(); currentDate.add(Calendar.DAY_OF_YEAR, day); return sdf.format(currentDate.getTime()); } //@he 根据年月日建目录 public static String getDatePath(String type) { Date currentDate = new Date(); String datePath = ""; if ("YMD".equalsIgnoreCase(type)) { datePath = sdfY.format(currentDate) + "/" + sdfM.format(currentDate) + "/" + sdfD.format(currentDate) + "/"; return datePath; } if ("YM".equalsIgnoreCase(type)) { datePath = sdfY.format(currentDate) + "/" + sdfM.format(currentDate) + "/"; return datePath; } if ("Y".equalsIgnoreCase(type)) { datePath = sdfY.format(currentDate) + "/"; return datePath; } if ("YM".equalsIgnoreCase(type)) { datePath = sdfY.format(currentDate) + "/" + sdfM.format(currentDate) + "/"; return datePath; } if ("D".equalsIgnoreCase(type)) { datePath = sdfD.format(currentDate) + "/"; return datePath; } if ("M".equalsIgnoreCase(type)) { datePath = sdfM.format(currentDate) + "/"; return datePath; } if ("MD".equalsIgnoreCase(type)) { datePath = sdfM.format(currentDate) + "/" + sdfD.format(currentDate) + "/"; return datePath; } return datePath; } //@he public static String newShortGUID() { UUID uuid = UUID.randomUUID(); String strGUID; String shortGUID; strGUID = uuid.toString(); shortGUID = strGUID.substring(0, 8) + strGUID.substring(9, 13) + strGUID.substring(14, 18) + strGUID.substring(19, 23) + strGUID.substring(24, 36); return shortGUID; } //@he 增加byte转文件 public static void getFileByByte(byte[] bytes, String filePath, String fileName) { BufferedOutputStream bos = null; FileOutputStream fos = null; File file = null; try { File dir = new File(filePath); if (!dir.exists() && dir.isDirectory()) { dir.mkdirs(); } file = new File(filePath + "/" + fileName); fos = new FileOutputStream(file); bos = new BufferedOutputStream(fos); bos.write(bytes); } catch (Exception e) { e.printStackTrace(); } finally { if (bos != null) { try { bos.close(); } catch(Exception e) { e.printStackTrace(); } } } } //@he 增加文件转byte public static byte[] fileToByte(File file) { byte[] data = null; try { FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(1000); byte[] b = new byte[1000]; int n; while ((n = fis.read(b)) != -1) { bos.write(b, 0, n); } fis.close(); data = bos.toByteArray(); bos.close(); } catch(Exception e) { e.printStackTrace(); } return data; } public static boolean isEmptyStr(Object str) { boolean result = false; if ((str == null) || ("".equals(str)) || (str.equals("null")) || (str.equals("{}"))) result = true; return result; } public static boolean isEmpty(String value) { if (value == null) { return true; } if ("".equals(value) || "null".equalsIgnoreCase(value)) { return true; } return false; } public static boolean isEmpty(Object value) { if (value == null) { return true; } if ("".equals(value)) { return true; } return false; } public static String[] split(String str) { if (str == null) { return new String[0]; } return str.replace(",", ";").replace(",", ";").replace(";", ";").split(";"); } public static String format(int value, int length) { String result = String.valueOf(value); while (result.length() < length) { result = "0" + result; } return result; } public static String newDateStr() { return newDateTimeStr("yyyy-MM-dd"); } public static String newDateTimeStr() { return newDateTimeStr("yyyy-MM-dd kk:mm:ss"); } public static String newDateTimeStr(String fomater) { return getDateTimeStr(new Date(), fomater); } public static String getDateTimeStr(Date date, String fomater) { String result = ""; DateFormat dateFormat = new SimpleDateFormat(fomater); result = dateFormat.format(date); return result; } public static String doubleQuotedStr(String str) { if (str != null) return "\"" + str + "\""; else return "\"\""; } public static String quotedStr(String str) { if (str != null) return "'" + str + "'"; else return "''"; } public static Date StringToDate(String str) throws ParseException { if (isEmpty(str)) { return null; } Date result = null; String fomater = null; str = str.replace('T', ' '); if (str.indexOf("/") == 4) { fomater = "yyyy/MM/dd"; } else if (str.indexOf("/") == 2 || str.indexOf("/") == 1) { fomater = "MM/dd/yyyy"; } else if (str.indexOf("-") == 2 || str.indexOf("-") == 1) { fomater = "MM-dd-yyyy"; } else if (str.indexOf("-") == 4 && str.indexOf(":") < 0) { fomater = "yyyy-MM-dd"; } else if (str.indexOf("-") == 4 && str.indexOf(":") > 0) { if (str.split(":").length == 3) { fomater = "yyyy-MM-dd HH:mm:ss"; } else { str = str + ":00"; fomater = "yyyy-MM-dd HH:mm:00"; } } else if (str.indexOf(".") == 2 || str.indexOf(".") == 1) { fomater = "MM.dd.yyyy"; } else if (str.indexOf(".") == 4) { fomater = "yyyy.MM.dd"; } else if (str.indexOf("-") < 0 && str.indexOf("/") < 0) { fomater = "yyyyMMdd"; } DateFormat dateFormat = new SimpleDateFormat(fomater); result = dateFormat.parse(str); return result; } public static String DataTimeToString(Date value) { return DataTimeToString(value, "yyyy-MM-dd HH:mm:ss"); } public static String DataTimeToString(Date value, String format) { if (value == null) { return null; } String result = ""; DateFormat dateFormat = new SimpleDateFormat(format); result = dateFormat.format(value); return result; } public static String booleanToStr(boolean value) { if (value) return "T"; else return "F"; } public static boolean StringToBoolean(String value) { if (value != null) { value = value.toLowerCase(); if (value.equals("t")) { return true; } else if (value.equals("y")) { return true; } else if (value.equals("true")) { return true; } else if (value.equals("yes")) { return true; } else { return false; } } else return false; } public static String decodeValue(Object value) { String result = null; if (value == null) { return null; } if (!(value instanceof String)) { result = String.valueOf(value); } else { result = (String)value; } try { result = URLDecoder.decode(result, "UTF-8"); result = result.replace("%20", "+"); } catch (Exception e) { } return result; } public static String stringJoin(String... strings) { StringBuilder stringBuilder = new StringBuilder(); for (String segment: strings) { stringBuilder.append(segment); } return stringBuilder.toString(); } public static boolean equals(String one, String another) { if (one == null || "".equals(one)) { if (another == null || "".equals(another)) { return true; } return false; } else { if (another == null || "".equals(another)) { return false; } return one.equals(another); } } public static boolean equals(Object one, Object another) { if (one == null) { if (another == null) { return true; } else { return false; } } else { if (another == null) { return false; } } return String.valueOf(one).equals(String.valueOf(another)); } public static String ifEmpty(String value, String defaultValue) { if (isEmpty(value)) { return defaultValue; } return value; } public static boolean isInteger(String str) { Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); return pattern.matcher(str).matches(); } }