字符串工具

Java常用方法   2025-01-10 05:35   136   0  
/**
 * 字符串工具
 *
 * @author chenwc
 * @date 2023/3/2 21:09
 */
public class StringUtils {

    /**
     * 半角和全角除空格外的字符偏移量是65248
     */
    private final static Integer CharacterOffset = 65248;

    /**
     * 判断字符串是否为空
     *
     * @param str 字符串
     * @return 为空返回true,不为空返回false
     */
    public static boolean isEmpty(String str) {
        return null == str || str.isEmpty();
    }

    /**
     * 判断字符串是否不为空
     *
     * @param str 字符串
     * @return 不为空返回true,为空返回false
     */
    public static boolean isNotEmpty(String str) {
        return !isEmpty(str);
    }

    /**
     * 判断字符串是否包含小写字母
     *
     * @param str 字符串
     * @return 包含返回true,不包含返回false
     */
    public static boolean isContainsLowercaseLetters(String str) {
        boolean flag = false;
        for (char c : str.toCharArray()) {
            if (c >= 'a' && c <= 'z') {
                flag = true;
                break;
            }
        }
        return flag;
    }

    /**
     * 判断字符串是否包含大写字母
     *
     * @param str 字符串
     * @return 包含返回true,不包含返回false
     */
    public static boolean isContainsUppercaseLetters(String str) {
        boolean flag = false;
        for (char c : str.toCharArray()) {
            if (c >= 'A' && c <= 'Z') {
                flag = true;
                break;
            }
        }
        return flag;
    }

    /**
     * 判断字符串是否包含字母
     *
     * @param str 字符串
     * @return 包含返回true,不包含返回false
     */
    public static boolean isContainsLetters(String str) {

        return (isContainsUppercaseLetters(str) || isContainsLowercaseLetters(str));
    }

    /**
     * 判断字符串是否包含数字
     *
     * @param str 字符串
     * @return 包含返回true,不包含返回false
     */
    public static boolean isContainsNumbers(String str) {
        boolean flag = false;
        for (char c : str.toCharArray()) {
            if (c >= '0' && c <= '9') {
                flag = true;
                break;
            }
        }
        return flag;
    }

    /**
     * 判断字符串是否包含全角符号
     * 全角字符是从65281开始到65374结束,全角空格是12288
     *
     * @param str 字符串
     * @return 包含返回true,不包含返回false
     */
    public static boolean isContainsFullWidthSymbol(String str) {
        boolean flag = false;
        for (char c : str.toCharArray()) {
            if ((c >= 65281 && c <= 65374) || c == 12288) {
                flag = true;
                break;
            }
        }
        return flag;
    }

    /**
     * 全角符号转半角符号
     *
     * @param str 字符串
     * @return 转换后的字符串
     */
    public static String changeFullWidthToHalfWidthSymbol(String str) {
        char[] halfWidth = new char[str.length()];
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c >= 65281 && c <= 65374) {
                halfWidth[i] = (char) (c - CharacterOffset);
            } else if (c == 12288) {
                halfWidth[i] = 32;
            } else {
                halfWidth[i] = c;
            }
        }
        return new String(halfWidth);
    }

    /**
     * 判断字符串是否包含半角符号
     * 半角字符是从32(空格)开始到126结束
     *
     * @param str 字符串
     * @return 包含返回true,不包含返回false
     */
    public static boolean isContainsHalfWidthSymbol(String str) {
        boolean flag = false;
        for (char c : str.toCharArray()) {
            if (c >= 32 && c <= 126) {
                flag = true;
                break;
            }
        }
        return flag;
    }

    /**
     * 半角符号转全角符号
     *
     * @param str 字符串
     * @return 转换后的字符串
     */
    public static String changeHalfWidthToFullWidthSymbol(String str) {
        char[] halfWidth = new char[str.length()];
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c >= 33 && c <= 126) {
                halfWidth[i] = (char) (c + CharacterOffset);
            } else if (c == 32) {
                halfWidth[i] = 12288;
            } else {
                halfWidth[i] = c;
            }
        }
        return new String(halfWidth);
    }

    /**
     * 去除字符串中的汉字
     *
     * @param str 字符串
     * @return 转换后的字符串
     */
    public static String removeChineseCharacters(String str) {
        return str.replaceAll("[\u4e00-\u9fa5]", "");
    }

    /**
     * 截取出字符串中的汉字
     *
     * @param str 字符串
     * @return 转换后的字符串
     */
    public static String InterceptChineseCharacters(String str) {
        StringBuilder test = new StringBuilder();
        for (char charsSs : str.toCharArray()) {
            String temp = String.valueOf(charsSs);
            // 判断是汉字
            if (temp.matches("[\u4e00-\u9fa5]")) {
                test.append(temp);
            }
        }
        return test.toString();
    }

}


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。