字符串处理工具类

字符串处理工具类

  • 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;
        }
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT枫斗者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值