字符串处理工具类
import java.util.Arrays;
public class StringUtils {
/**
* 将字符串反转
* @param str 要反转的字符串
* @return 反转后的字符串
*/
public static String reverseString(String str) {
return new StringBuilder(str).reverse().toString();
}
/**
* 判断字符串是否为空
* @param str 要判断的字符串
* @return 如果字符串为空则返回true,否则返回false
*/
public static boolean isEmpty(String str) {
return str == null || str.isEmpty();
}
/**
* 去除字符串两端的空格
* @param str 要处理的字符串
* @return 去除两端空格后的字符串
*/
public static String trim(String str) {
return str.trim();
}
/**
* 将字符串转换为大写
* @param str 要转换的字符串
* @return 转换为大写后的字符串
*/
public static String toUpperCase(String str) {
return str.toUpperCase();
}
/**
* 将字符串转换为小写
* @param str 要转换的字符串
* @return 转换为小写后的字符串
*/
public static String toLowerCase(String str) {
return str.toLowerCase();
}
/**
* 判断字符串是否以指定的前缀开始
* @param str 要判断的字符串
* @param prefix 前缀
* @return 如果字符串以指定的前缀开始则返回true,否则返回false
*/
public static boolean startsWith(String str, String prefix) {
return str.startsWith(prefix);
}
/**
* 判断字符串是否以指定的后缀结束
* @param str 要判断的字符串
* @param suffix 后缀
* @return 如果字符串以指定的后缀结束则返回true,否则返回false
*/
public static boolean endsWith(String str, String suffix) {
return str.endsWith(suffix);
}
/**
* 判断字符串是否包含指定子字符串
* @param str 要判断的字符串
* @param subStr 子字符串
* @return 如果字符串包含指定子字符串则返回true,否则返回false
*/
public static boolean contains(String str, String subStr) {
return str.contains(subStr);
}
/**
* 将字符串按照指定分隔符拆分为数组
* @param str 要拆分的字符串
* @param delimiter 分隔符
* @return 拆分后的字符串数组
*/
public static String[] split(String str, String delimiter) {
return str.split(delimiter);
}
/**
* 将字符串按照指定分隔符拆分为列表
* @param str 要拆分的字符串
* @param delimiter 分隔符
* @return 拆分后的字符串列表
*/
public static List<String> splitToList(String str, String delimiter) {
return Arrays.asList(str.split(delimiter));
}
/**
* 替换字符串中的指定子字符串
* @param str 要替换的字符串
* @param target 要被替换的子字符串
* @param replacement 替换字符串
* @return 替换后的字符串
*/
public static String replace(String str, String target, String replacement) {
return str.replace(target, replacement);
}
/**
* 将字符串转换为首字母大写
* @param str 要转换的字符串
* @return 首字母大写的字符串
*/
public static String capitalize(String str) {
if (isEmpty(str)) {
return str;
}
return Character.toUpperCase(str.charAt(0)) + str.substring(1);
}
/**
* 将字符串转换为首字母小写
* @param str 要转换的字符串
* @return 首字母小写的字符串
*/
public static String uncapitalize(String str) {
if (isEmpty(str)) {
return str;
}
return Character.toLowerCase(str.charAt(0)) + str.substring(1);
}
/**
* 将字符串转换为驼峰命名法(首字母小写)
* 例如: "hello_world" -> "helloWorld"
* @param str 要转换的字符串
* @return 转换后的字符串
*/
public static String toCamelCase(String str) {
if (isEmpty(str)) {
return str;
}
StringBuilder sb = new StringBuilder();
String[] words = str.split("_");
sb.append(words[0]);
for (int i = 1; i < words.length; i++) {
sb.append(capitalize(words[i]));
}
return sb.toString();
}
/**
* 将字符串转换为帕斯卡命名法(首字母大写)
* 例如: "hello_world" -> "HelloWorld"
* @param str 要转换的字符串
* @return 转换后的字符串
*/
public static String toPascalCase(String str) {
return capitalize(toCamelCase(str));
}
/**
* 将字符串转换为下划线命名法(小写字母,单词间用下划线分隔)
* 例如: "HelloWorld" -> "hello_world"
* @param str 要转换的字符串
* @return 转换后的字符串
*/
public static String toSnakeCase(String str) {
if (isEmpty(str)) {
return str;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isUpperCase(c)) {
if (i > 0) {
sb.append('_');
}
sb.append(Character.toLowerCase(c));
} else {
sb.append(c);
}
}
return sb.toString();
}
/**
* 获取重复指定次数的字符串
* @param str 要重复的字符串
* @param repeatCount 重复次数
* @return 重复指定次数后的字符串
*/
public static String repeat(String str, int repeatCount) {
if (repeatCount <= 0) {
return "";
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < repeatCount; i++) {
sb.append(str);
}
return sb.toString();
}
/**
* 获取字符串的长度(考虑Unicode扩展字符)
* @param str 要获取长度的字符串
* @return 字符串的长度
*/
public static int length(String str) {
if (isEmpty(str)) {
return 0;
}
return str.codePointCount(0, str.length());
}
/**
* 判断两个字符串是否相等(忽略大小写)
* @param str1 字符串1
* @param str2 字符串2
* @return 如果两个字符串相等则返回true,否则返回false
*/
public static boolean equalsIgnoreCase(String str1, String str2) {
return str1.equalsIgnoreCase(str2);
}
/**
* 判断字符串是否为数字
* @param str 要判断的字符串
* @return 如果字符串为数字则返回true,否则返回false
*/
public static boolean isNumeric(String str) {
if (isEmpty(str)) {
return false;
}
for (char c : str.toCharArray()) {
if (!Character.isDigit(c)) {
return false;
}
}
return true;
}
}