String工具类
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Slf4j
public class StringUtils {
private final static int NUM_32 = 32;
private static int machineId = 1;
private static final Pattern CAMLE_PATTERN = Pattern.compile("_(\\w)");
private static final Pattern UNDER_LINE_PATTERN = Pattern.compile("[A-Z]");
public static StringBuffer camel(StringBuffer str) {
Matcher matcher = CAMLE_PATTERN.matcher(str);
StringBuffer sb = new StringBuffer(str);
if(matcher.find()) {
sb = new StringBuffer();
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
matcher.appendTail(sb);
}else {
return sb;
}
return camel(sb);
}
public static StringBuffer underLine(StringBuffer str) {
Matcher matcher = UNDER_LINE_PATTERN.matcher(str);
StringBuffer sb = new StringBuffer(str);
if(matcher.find()) {
sb = new StringBuffer();
matcher.appendReplacement(sb,"_"+matcher.group(0).toLowerCase());
matcher.appendTail(sb);
}else {
return sb;
}
return underLine(sb);
}
public static long getLong(String str, Long defaultData) {
Long lnum = defaultData;
if (isEmpty(str)) {
return lnum;
}
try {
lnum = Long.valueOf(str.trim()).longValue();
} catch (NumberFormatException e) {
log.warn("把String 转换为 long======== " + str);
}
return lnum;
}
public static Boolean getBoolean(String str, Boolean defaultData) {
Boolean lnum = defaultData;
if (isEmpty(str)) {
return lnum;
}
try {
lnum = Boolean.valueOf(str.trim()).booleanValue();
} catch (NumberFormatException e) {
log.warn("把String 转换为 long======== " + str);
}
return lnum;
}
public static int getInt(String str, Integer defaultData) {
int inum = defaultData;
if (isEmpty(str)) {
return inum;
}
try {
inum = Integer.valueOf(str.trim()).intValue();
} catch (NumberFormatException e) {
log.warn("把String转换成int数据========== " + str);
}
return inum;
}
public static double getDouble(String str, Double defaultData) {
double dnum = defaultData;
if (isEmpty(str)) {
return dnum;
}
try {
dnum = Double.valueOf(str.trim()).doubleValue();
} catch (NumberFormatException e) {
log.error("把String转换成double数据: {}", str);
}
return dnum;
}
public static float getFloat(String str, Float defaultData) {
float dnum = defaultData;
if (isEmpty(str)) {
return dnum;
}
try {
dnum = Float.valueOf(str.trim()).floatValue();
} catch (NumberFormatException e) {
log.error("把String转换成float数据: {}", str);
}
return dnum;
}
public static Boolean isEmpty(String s) {
if (s == null || s.length() <= 0) {
return true;
}
return false;
}
public static boolean isNotEmpty(String str) {
return !StringUtils.isEmpty(str);
}
public static String[] split(String str, String code) {
String[] split;
if (isEmpty(str)) {
split = null;
} else {
split = str.split(code);
}
return split;
}
public static List<Long> changeStringToLong(String str, String code) {
String[] split = split(str, code);
List<Long> lnums = new ArrayList<>();
for (String s : split) {
if (!isEmpty(s)) {
long lnum = getLong(s, 0L);
lnums.add(lnum);
}
}
return lnums;
}
public static List<String> changeStringToString(String str, String code) {
String[] split = split(str, code);
List<String> lnums = new ArrayList<>();
for (String s : split) {
lnums.add(s);
}
return lnums;
}
public static List<Integer> changeStringToInteger(String str, String code) {
String[] split = split(str, code);
List<Integer> inums = new ArrayList<>();
for (String s : split) {
int inum = getInt(s, 0);
inums.add(inum);
}
return inums;
}
public static String getOrderNumberByUUID() {
int hashCodeV = UUID.randomUUID().toString().hashCode();
if (hashCodeV < 0) {
hashCodeV = -hashCodeV;
}
String orderNumber = machineId + String.format("%015d", hashCodeV);
return orderNumber;
}
public static String getOutRefundNoByUUID() {
int hashCodeV = UUID.randomUUID().toString().hashCode();
if (hashCodeV < 0) {
hashCodeV = -hashCodeV;
}
String out_refund_no = "BACK" + machineId + String.format("%015d", hashCodeV);
return out_refund_no;
}
public static String getUUID() {
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
log.debug("获取32位的UUID的调试日志-->>" + uuid);
return uuid;
}
public static Long getSnowflakeId() {
SnowflakeIdWorker snowflakeIdWorker = new SnowflakeIdWorker(0, 0);
return snowflakeIdWorker.nextId();
}
public static String listToString(List<Long> list, String code) {
String s = "";
if (list == null || list.size() <= 0) {
return s;
}
for (Long l : list) {
if (l.longValue() > 0) {
s = s + l + code;
}
}
return s;
}
public static String listTranformString(List<String> list, String code) {
String s = "";
if (list == null || list.size() <= 0) {
return s;
}
s = String.join(code, list);
return s;
}
public static boolean isNotBlank(String str) {
return !StringUtils.isBlank(str);
}
public static boolean checkUidList(Collection<String> collection) {
if (collection.size() == 0) {
return false;
}
for (String uid : collection) {
if (uid.trim().length() != NUM_32) {
return false;
}
}
return true;
}
public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}
public static boolean isNumeric(String str) {
try {
Integer.valueOf(str);
return true;
} catch (Exception e) {
return false;
}
}
public static boolean contains(String str, String searchChar) {
if (isEmpty(str)) {
return false;
}
return str.indexOf(searchChar) >= 0;
}
public static String substring(String str, int start) {
if (str == null) {
return null;
}
if (start < 0) {
start = str.length() + start;
}
if (start < 0) {
start = 0;
}
if (start > str.length()) {
return "";
}
return str.substring(start);
}
public static Boolean isCommentSpam(String content) {
if (content == null) {
return true;
}
char[] chars = content.toCharArray();
Integer maxCount = 4;
for (int a = 0; a < chars.length; a++) {
Integer count = 1;
for (int b = a; b < chars.length - 1; b++) {
if (chars[b + 1] == chars[b]) {
count++;
if (count >= maxCount) {
return true;
}
continue;
} else {
break;
}
}
}
return false;
}
public static void main(String[] args) {
System.out.println(underLine(new StringBuffer("dogId")));
}
}