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 <T> List<T> objToList(Object obj, Class<T> zlass) throws Exception {
|
List<T> list = new ArrayList<T>();
|
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();
|
}
|
}
|