java判断各国语言

public class CharacterUtils {
    private CharacterUtils() {
    }

    /**
     * 判断字符串是否为中文
     *
     * @param inputStr 字符串
     * @return boolean
     */
    public static boolean isChinese(String inputStr) {
        return match(inputStr, "[\u4E00-\u9FA5]+");
    }

    /**
     * 判断单个字符是否为英文
     *
     * @param inputStr 字符串
     * @return boolean
     */
    public static boolean isEnglish(String inputStr) {
        return match(inputStr, "[a-zA-Z]+");
    }

    /**
     * 判断字符串是否为日文
     *
     * @param inputStr 字符串
     * @return boolean
     */
    public static boolean isJapanese(String inputStr) {
        return match(inputStr, "[\u3040-\u309F\u30A0-\u30FF\u31F0-\u31FF]+");
    }

    /**
     * 判断字符串是否为韩文
     *
     * @param inputStr 字符串
     * @return boolean
     */
    public static boolean isKorea(String inputStr) {
        return match(inputStr, "[\u3130-\u318F\uAC00-\uD7A3]+");
    }

    /**
     * 判断字符串是否为俄文
     *
     * @param inputStr 字符串
     * @return boolean
     */
    public static boolean isRussian(String inputStr) {
        return match(inputStr, "[\u0400-\u052F]+");
    }

    private static boolean match(String inputStr, String regex) {
        String str = replace(inputStr);
        if (StringUtils.isBlank(str)) {
            return true;
        }
        return str.matches(regex);
    }

    /**
     * 替换标点符号、表情、数字、空格、制表符、换行
     *
     * @param inputStr 输入字符
     * @return 替换后的字符
     */
    private static String replace(String inputStr) {
        if (StringUtils.isBlank(inputStr)) {
            return inputStr;
        }
        return inputStr.replaceAll("\\p{Punct}", "")
            .replaceAll("[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]+", "")
            .replaceAll("\\d+", "")
            .replaceAll("\\s*|\t|\r|\n", "");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值