377 lines
11 KiB
Java
377 lines
11 KiB
Java
package com.jsh.erp.utils;
|
||
|
||
import org.springframework.util.StringUtils;
|
||
import com.alibaba.fastjson.JSON;
|
||
import com.alibaba.fastjson.JSONObject;
|
||
|
||
import java.math.BigDecimal;
|
||
import java.text.ParseException;
|
||
import java.text.SimpleDateFormat;
|
||
import java.util.*;
|
||
import java.util.regex.Pattern;
|
||
|
||
/**
|
||
* @author jishenghua qq752718920 2018-10-7 15:26:27
|
||
*/
|
||
public class StringUtil {
|
||
|
||
private StringUtil() {
|
||
|
||
}
|
||
|
||
private static String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
|
||
|
||
public final static String regex = "'|#|%|;|--| and | and|and | or | or|or | not | not|not " +
|
||
"| use | use|use | insert | insert|insert | delete | delete|delete | update | update|update " +
|
||
"| select | select|select | count | count|count | group | group|group | union | union|union " +
|
||
"| create | create|create | drop | drop|drop | truncate | truncate|truncate | alter | alter|alter " +
|
||
"| grant | grant|grant | execute | execute|execute | exec | exec|exec | xp_cmdshell | xp_cmdshell|xp_cmdshell " +
|
||
"| call | call|call | declare | declare|declare | source | source|source | sql | sql|sql ";
|
||
|
||
/** 下划线 */
|
||
private static final char SEPARATOR = '_';
|
||
|
||
public static String filterNull(String str) {
|
||
if (str == null) {
|
||
return "";
|
||
} else {
|
||
return str.trim();
|
||
}
|
||
}
|
||
|
||
public static boolean stringEquels(String source,String target) {
|
||
if(isEmpty(source)||isEmpty(target)){
|
||
return false;
|
||
}else{
|
||
return source.equals(target);
|
||
}
|
||
}
|
||
|
||
public static boolean isEmpty(String str) {
|
||
return str == null || "".equals(str.trim());
|
||
}
|
||
|
||
public static boolean isNotEmpty(String str) {
|
||
return !isEmpty(str);
|
||
}
|
||
|
||
public static String getSysDate(String format) {
|
||
if (StringUtil.isEmpty(format)) {
|
||
format = DEFAULT_FORMAT;
|
||
}
|
||
SimpleDateFormat df = new SimpleDateFormat(format);
|
||
return df.format(new Date());
|
||
}
|
||
|
||
public static Date getDateByString(String date, String format) {
|
||
if (StringUtil.isEmpty(format)) {
|
||
format = DEFAULT_FORMAT;
|
||
}
|
||
if (StringUtil.isNotEmpty(date)) {
|
||
SimpleDateFormat sdf = new SimpleDateFormat(format);
|
||
try {
|
||
return sdf.parse(date);
|
||
} catch (ParseException e) {
|
||
throw new RuntimeException("转换为日期类型错误:DATE:" + date + " FORMAT:" + format);
|
||
}
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public static Date getDateByLongDate(Long millis) {
|
||
if (millis == null) {
|
||
return new Date();
|
||
}
|
||
Calendar cal = Calendar.getInstance();
|
||
cal.setTimeInMillis(millis);
|
||
return cal.getTime();
|
||
|
||
}
|
||
|
||
public static UUID stringToUUID(String id) {
|
||
if (StringUtil.isNotEmpty(id)) {
|
||
return UUID.fromString(id);
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public static Integer parseInteger(String str) {
|
||
if (StringUtil.isNotEmpty(str)) {
|
||
return Integer.parseInt(str);
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public static Long parseStrLong(String str) {
|
||
if (StringUtil.isNotEmpty(str)) {
|
||
return Long.parseLong(str);
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public static List<UUID> listToUUID(List<String> listStrs) {
|
||
if (listStrs != null && listStrs.size() > 0) {
|
||
List<UUID> uuidList = new ArrayList<UUID>();
|
||
for (String str : listStrs) {
|
||
uuidList.add(UUID.fromString(str));
|
||
}
|
||
return uuidList;
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public static List<UUID> arrayToUUIDList(String[] uuids) {
|
||
if (uuids != null && uuids.length > 0) {
|
||
List<UUID> uuidList = new ArrayList<UUID>();
|
||
for (String str : uuids) {
|
||
uuidList.add(UUID.fromString(str));
|
||
}
|
||
return uuidList;
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
//是否是JSON
|
||
public static boolean containsAny(String str, String... flag) {
|
||
if (str != null) {
|
||
if (flag == null || flag.length == 0) {
|
||
flag = "[-{-}-]-,".split("-");
|
||
}
|
||
for (String s : flag) {
|
||
if (str.contains(s)) {
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
public static String getModifyOrgOperateData(UUID resourceId, UUID orgId) {
|
||
if (resourceId != null && orgId != null) {
|
||
Map<UUID, UUID> map = new HashMap<UUID, UUID>();
|
||
map.put(resourceId, orgId);
|
||
return JSON.toJSONString(map);
|
||
}
|
||
return "";
|
||
}
|
||
|
||
public static String[] listToStringArray(List<String> list) {
|
||
if (list != null && !list.isEmpty()) {
|
||
return list.toArray(new String[list.size()]);
|
||
}
|
||
return new String[0];
|
||
}
|
||
|
||
public static Long[] listToLongArray(List<Long> list) {
|
||
if (list != null && !list.isEmpty()) {
|
||
return list.toArray(new Long[list.size()]);
|
||
}
|
||
return new Long[0];
|
||
}
|
||
|
||
public static List<String> stringToListArray(String[] strings) {
|
||
if (strings != null && strings.length > 0) {
|
||
return Arrays.asList(strings);
|
||
}
|
||
return new ArrayList<String>();
|
||
}
|
||
|
||
public static BigDecimal getArrSum(String[] strings) {
|
||
BigDecimal sum = BigDecimal.ZERO;
|
||
for(int i=0;i<strings.length;i++){
|
||
sum = sum.add(new BigDecimal(strings[i]));
|
||
}
|
||
return sum;
|
||
}
|
||
|
||
/**
|
||
* String字符串转成List<Long>数据格式
|
||
* String str = "1,2,3,4,5,6" -> List<Long> listLong [1,2,3,4,5,6];
|
||
*
|
||
* @param strArr
|
||
* @return
|
||
*/
|
||
public static List<Long> strToLongList(String strArr) {
|
||
List<Long> idList=new ArrayList<Long>();
|
||
String[] d=strArr.split(",");
|
||
for (int i = 0, size = d.length; i < size; i++) {
|
||
if(d[i]!=null) {
|
||
idList.add(Long.parseLong(d[i]));
|
||
}
|
||
}
|
||
return idList;
|
||
}
|
||
|
||
/**
|
||
* String字符串转成List<BigDecimal>数据格式
|
||
* String str = "1,2,3,4,5,6" -> List<BigDecimal> listBigDecimal [1,2,3,4,5,6];
|
||
*
|
||
* @param strArr
|
||
* @return
|
||
*/
|
||
public static List<BigDecimal> strToBigDecimalList(String strArr) {
|
||
List<BigDecimal> idList=new ArrayList<>();
|
||
String[] d=strArr.split(",");
|
||
for (int i = 0, size = d.length; i < size; i++) {
|
||
if(d[i]!=null) {
|
||
idList.add(new BigDecimal(d[i]));
|
||
}
|
||
}
|
||
return idList;
|
||
}
|
||
|
||
/**
|
||
* String字符串转成List<String>数据格式
|
||
* String str = "1,2,3,4,5,6" -> List<Long> listLong [1,2,3,4,5,6];
|
||
*
|
||
* @param strArr
|
||
* @return
|
||
*/
|
||
public static List<String> strToStringList(String strArr) {
|
||
if(StringUtils.isEmpty(strArr)){
|
||
return null;
|
||
}
|
||
List<String> idList=new ArrayList<String>();
|
||
String[] d=strArr.split(",");
|
||
for (int i = 0, size = d.length; i < size; i++) {
|
||
if(d[i]!=null) {
|
||
idList.add(d[i].toString());
|
||
}
|
||
}
|
||
return idList;
|
||
}
|
||
|
||
public static List<String> searchCondition(String search) {
|
||
if (isEmpty(search)) {
|
||
return new ArrayList<String>();
|
||
}else{
|
||
//String[] split = search.split(" ");
|
||
String[] split = search.split("#");
|
||
return stringToListArray(split);
|
||
}
|
||
}
|
||
|
||
public static String getInfo(String search, String key){
|
||
String value = null;
|
||
if(StringUtil.isNotEmpty(search)) {
|
||
search = search.replace("{}","");
|
||
if(StringUtil.isNotEmpty(search)) {
|
||
JSONObject obj = JSONObject.parseObject(search);
|
||
if (obj.get(key) != null) {
|
||
value = obj.getString(key).trim();
|
||
if (value.equals("")) {
|
||
value = null;
|
||
}
|
||
} else {
|
||
value = null;
|
||
}
|
||
}
|
||
}
|
||
return value;
|
||
}
|
||
|
||
public static String toNull(String value) {
|
||
if(isEmpty(value)) {
|
||
value = null;
|
||
} else {
|
||
value = value.trim();
|
||
}
|
||
return value;
|
||
}
|
||
|
||
public static boolean isExist(Object value) {
|
||
if(value!=null) {
|
||
String str = value.toString();
|
||
if("".equals(str.trim())) {
|
||
return false;
|
||
} else {
|
||
return true;
|
||
}
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 判断对象是否为正整数
|
||
* @param value
|
||
* @return
|
||
*/
|
||
public static boolean isPositiveLong(Object value) {
|
||
if(value!=null) {
|
||
String str = value.toString();
|
||
if(isNotEmpty(str)) {
|
||
if((str.matches("[0-9]+"))&&(Long.parseLong(str)>0)) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
} else {
|
||
return false;
|
||
}
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 校验条码长度为4到40位
|
||
* @param value
|
||
* @return
|
||
*/
|
||
public static boolean checkBarCodeLength(Object value) {
|
||
if(value!=null) {
|
||
String str = value.toString();
|
||
if(isNotEmpty(str)) {
|
||
if(str.length()>=4 && str.length()<=40 ) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
} else {
|
||
return false;
|
||
}
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 判断对象是否为数字(含小数)
|
||
* @param str
|
||
* @return
|
||
*/
|
||
public static boolean isPositiveBigDecimal(String str){
|
||
Pattern pattern = Pattern.compile("[0-9]*");
|
||
if(str.indexOf(".")>0){//判断是否有小数点
|
||
if(str.indexOf(".")==str.lastIndexOf(".") && str.split("\\.").length==2){ //判断是否只有一个小数点
|
||
return pattern.matcher(str.replace(".","")).matches();
|
||
}else {
|
||
return false;
|
||
}
|
||
}else {
|
||
return pattern.matcher(str).matches();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* sql注入过滤,保障sql的安全执行
|
||
* @param originStr
|
||
* @return
|
||
*/
|
||
public static String safeSqlParse(String originStr){
|
||
return originStr.replaceAll("(?i)" + regex, "");
|
||
}
|
||
|
||
public static void main(String[] args) {
|
||
int i = 10/3;
|
||
System.out.println(i);
|
||
}
|
||
}
|