public class StrUtil {
/**
* 字符串分隔符
*/
public static final String SEPARATOR = String.valueOf((char) 29);
/**
* 字符串为 null 或者为 "" 时返回 true
*/
public static boolean isBlank(String str) {
return str == null || "".equals(str.trim());
}
/**
* 字符串不为 null 而且不为 "" 时返回 true
*/
public static boolean isNotBlank(String str) {
return str != null && !"".equals(str.trim());
}
/**
* 将字符数组按照特定的分隔符转换成字符串
*/
public static String join(String[] stringArray, String separator) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < stringArray.length; i++) {
if (i > 0) {
sb.append(separator);
}
sb.append(stringArray[i]);
}
return sb.toString();
}
/**
* 首字母变小写
*/
public static String firstCharToLowerCase(String str) {
char firstChar = str.charAt(0);
if (firstChar >= 'A' && firstChar <= 'Z') {
char[] arr = str.toCharArray();
arr[0] += ('a' - 'A');
return new String(arr);
}
return str;
}
/**
* 首字母变大写
*/
public static String firstCharToUpperCase(String str) {
char firstChar = str.charAt(0);
if (firstChar >= 'a' && firstChar <= 'z') {
char[] arr = str.toCharArray();
arr[0] -= ('a' - 'A');
return new String(arr);
}
return str;
}
/**
* 将下划线风格替换为驼峰风格 1
*/
public static String toCamelCase(String stringWithUnderline) {
if (stringWithUnderline.indexOf('_') == -1) {
return stringWithUnderline;
}
stringWithUnderline = stringWithUnderline.toLowerCase();
char[] fromArray = stringWithUnderline.toCharArray();
char[] toArray = new char[fromArray.length];
int j = 0;
for (int i = 0; i < fromArray.length; i++) {
if (fromArray[i] == '_') {
// 当前字符为下划线时,将指针后移一位,将紧随下划线后面一个字符转成大写并存放
i++;
if (i < fromArray.length)
toArray[j++] = Character.toUpperCase(fromArray[i]);
} else {
toArray[j++] = fromArray[i];
}
}
return new String(toArray, 0, j);
}
/**
* 将驼峰风格替换为下划线风格
*/
public static String camelToUnderline(String str) {
Matcher matcher = Pattern.compile("[A-Z]").matcher(str);
StringBuilder builder = new StringBuilder(str);
for (int i = 0; matcher.find(); i++) {
builder.replace(matcher.start() + i, matcher.end() + i, "_" + matcher.group().toLowerCase());
}
if (builder.charAt(0) == '_') {
builder.deleteCharAt(0);
}
return builder.toString();
}
/**
* 将下划线风格替换为驼峰风格 2
*/
public static String underlineToCamel(String str) {
Matcher matcher = Pattern.compile("_[a-z]").matcher(str);
StringBuilder builder = new StringBuilder(str);
for (int i = 0; matcher.find(); i++) {
builder.replace(matcher.start() - i, matcher.end() - i, matcher.group().substring(1).toUpperCase());
}
if (Character.isUpperCase(builder.charAt(0))) {
builder.replace(0, 1, String.valueOf(Character.toLowerCase(builder.charAt(0))));
}
return builder.toString();
}
public static void main(String[] args) {
System.out.println("1" + String.valueOf((char) 29) + "2");
}
}