openerp/jshERP-boot/src/main/java/com/jsh/erp/utils/StringUtil.java
2025-02-21 01:28:44 +08:00

377 lines
11 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}