java字符串类型判断工具类

主要用于判断字符串的中英文大小写、汉字、数字和中文转换为拼音等功能

package cn.xxx.rdc.fi.utils;

import org.springframework.stereotype.Component;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

/**
 * 字符串类型判断工具类
 * 
 * @author xxx
 * @date: 2021-02-08 09:16:43
 * @Copyright: Copyright (c) 2006 - 2021
 * @Company: xxx
 * @Version: V1.0
 */
@Component
public class StringTypeJudgeUtil {

    /**
     * 判断是否为英文小写
     * 
     * @author: xxx
     * @date: 2021-02-08 09:20:47
     * @param str
     * @return
     */
    public boolean isEnglishLowerCase(String str) {
        // 获取所有字符
        char c[] = str.toCharArray();
        // 获取每个字符的byte
        byte b[] = new byte[c.length];

        // 是否英文小写的标识符
        boolean isElc = true;
        // 循环所有字符
        for (int i = 0; i < c.length; i++) {
            b[i] = (byte)c[i];
            // 对每一个字符进行判断
            if (!(isElc = b[i] >= 97 && b[i] <= 122)) {
                break;
            }
        }
        return isElc;
    }

    /**
     * 判断是否为英文大写
     * 
     * @author: xxx
     * @date: 2021-02-08 09:20:47
     * @param str
     * @return
     */
    public boolean isEnglishUpperCase(String str) {
        // 获取所有字符
        char c[] = str.toCharArray();
        // 获取每个字符的byte
        byte b[] = new byte[c.length];

        // 是否英文大写的标识符
        boolean isEuc = true;
        // 循环所有字符
        for (int i = 0; i < c.length; i++) {
            b[i] = (byte)c[i];
            // 对每一个字符进行判断
            if (!(isEuc = b[i] >= 65 && b[i] <= 90)) {
                break;
            }
        }
        return isEuc;
    }

    /**
     * 判断是否为数字
     * 
     * @author: xxx
     * @date: 2021-02-08 09:33:55
     * @param str
     * @return
     */
    public boolean isNumber(String str) {
        // 获取所有字符
        char c[] = str.toCharArray();
        // 获取每个字符的byte
        byte b[] = new byte[c.length];

        // 是否数字的标识符
        boolean isNumFlag = true;
        // 循环所有字符
        for (int i = 0; i < c.length; i++) {
            b[i] = (byte)c[i];
            // 对每一个字符进行判断
            if (!(isNumFlag = b[i] >= 48 && b[i] <= 57)) {
                break;
            }
        }
        return isNumFlag;
    }

    /**
     * 判断字符是否为汉字
     * 
     * @author: xxx
     * @date: 2021-02-08 09:26:18
     * @param str
     * @return
     */
    public boolean isChineseCharacters(char c) {
        return String.valueOf(c).matches("[\u4e00-\u9fa5]");
    }

    /**
     * 判断是否为汉字、英文、数字
     * 
     * @author: xxx
     * @date: 2021-02-08 09:39:06
     * @param str
     * @return
     */
    public boolean isCcOrEnglishOrNumber(String str) {
        // 获取所有字符
        char c[] = str.toCharArray();
        // 获取每个字符的byte
        byte b[] = new byte[c.length];

        // 是否英文或数字的标识符
        boolean isEon = true;
        // 循环所有字符
        for (int i = 0; i < c.length; i++) {
            b[i] = (byte)c[i];
            // 对每一个字符进行判断
            if (!(b[i] >= 97 && b[i] <= 122 || b[i] >= 65 && b[i] <= 90 || b[i] >= 48 && b[i] <= 57
                || isChineseCharacters(c[i]))) {
                isEon = false;
                break;
            }
        }
        return isEon;
    }

    /**
     * 将字符串中的中文转化为拼音,其他字符不变
     * 
     * @author: xxx
     * @date: 2021-03-01 16:49:30
     * @param str
     * @return
     */
    public String getPinyinByChineseChar(String str) {
        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        format.setVCharType(HanyuPinyinVCharType.WITH_V);

        char[] input = str.trim().toCharArray();
        String output = "";

        try {
            for (int i = 0; i < input.length; i++) {
                if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
                    output += temp[0];
                } else {
                    output += Character.toString(input[i]);
                }
            }
        } catch (BadHanyuPinyinOutputFormatCombination e) {
            e.printStackTrace();
        }
        return output;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值