按不同类型进行分割字符串:
String[] s=StringUtils.splitByCharacterTypeCamelCase("aa3444张三BABcss")
String[] s1= StringUtils.splitByCharacterType("aa3444张三BABcss");
aa3444张三BABcss
aa_3444_张三_BA_Bcss>>>>>>>>>>splitByCharacterTypeCamelCase
aa_3444_张三_BAB_css>>>>>>>>>>splitByCharacterType
package cc.mrbird.febs.common.utils;
import cc.mrbird.febs.common.entity.FebsConstant;
import cc.mrbird.febs.system.entity.User;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.IntStream;
/**
* FEBS工具类
*
* @author MrBird
*/
@Slf4j
public class FebsUtil {
private static final Pattern CHINESE_PATTERN = Pattern.compile("[\u4e00-\u9fa5]");
/**
* 驼峰转下划线
*
* @param value 待转换值
* @return 结果
*/
public static String camelToUnderscore(String value) {
if (StringUtils.isBlank(value)) {
return value;
}
//按照字符类型进行分割
String[] arr = StringUtils.splitByCharacterTypeCamelCase(value);
if (arr.length == 0) {
return value;
}
StringBuilder result = new StringBuilder();
IntStream.range(0, arr.length).forEach(i -> {
if (i != arr.length - 1) {
result.append(arr[i]).append(StringPool.UNDERSCORE);
} else {
result.append(arr[i]);
}
});
return StringUtils.lowerCase(result.toString());
}
/**
* 下划线转驼峰
*
* @param value 待转换值
* @return 结果
*/
public static String underscoreToCamel(String value) {
StringBuilder result = new StringBuilder();
String[] arr = value.split("_");
for (String s : arr) {
result.append((String.valueOf(s.charAt(0))).toUpperCase()).append(s.substring(1));
}
return result.toString();
}
/**
* 判断是否为 ajax请求
*
* @param request HttpServletRequest
* @return boolean
*/
public static boolean isAjaxRequest(HttpServletRequest request) {
return (request.getHeader("X-Requested-With") != null
&& "XMLHttpRequest".equals(request.getHeader("X-Requested-With")));
}
/**
* 正则校验
*
* @param regex 正则表达式字符串
* @param value 要匹配的字符串
* @return 正则校验结果
*/
public static boolean match(String regex, String value) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(value);
return matcher.matches();
}
/**
* 获取当前登录用户
*
* @return User
*/
public static User getCurrentUser() {
return (User) SecurityUtils.getSubject().getPrincipal();
}
/**
* 判断是否包含中文
*
* @param value 内容
* @return 结果
*/
public static boolean containChinese(String value) {
if (StringUtils.isBlank(value)) {
return false;
}
Matcher matcher = CHINESE_PATTERN.matcher(value);
return matcher.find();
}
public static String view(String viewName) {
return FebsConstant.VIEW_PREFIX + viewName;
}
}