StringUtil.java 3.1 KB
package com.cjs.site.util.lang;

import java.util.UUID;
import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;

/**
 * 常用字符串工具类,优先使用org.apache.commons.lang3.StringUtils
 * 
 * @author tongyufu
 *
 */
public class StringUtil {

    /**生成UUID*/
    public static String getUUID() {
        return UUID.randomUUID().toString();
    }

    /**
     * 多重比较。如果source与任一targets相同,返回true,否则返回false
     * 
     * @param source 原始字符串
     * @param targets 比对列表
     * @return
     */
    public static boolean equals(String source, String... targets) {
        for (String target : targets) {
            if (StringUtils.equals(source, target)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 将对象转成字符串
     * @param str
     * @return 为null时转成""
     */
    public static String castString(Object str) {
        return str == null ? "" : str.toString();
    }

    public static boolean isBlank(Object str) {
        return str == null ? true : StringUtils.isBlank(str.toString());
    }

    /**是否是整数*/
    public static boolean isDigits(Object str) {
        return str == null ? false : NumberUtils.isDigits(str.toString());
    }

    /**
     * 补齐不足长度
     * @param length 长度
     * @param number 数字
     * @return
     */
    public static String lpad(int length, String number) {
        int leng = number.length();

        for (int i = 0; i < length - leng; i++) {
            number = "0" + number;
        }
        return number;
    }

    /**
     * 替换部分字符
     * @param length        显示部分
     * @param str           待操作字符串
     * @param replaceStr    替换用字符
     * @return
     */
    public static String leftReplace(int length, String str, String replaceStr) {
        String strleft = "";
        for (int i = 0; i < str.length() - length; i++) {
            strleft += replaceStr;
        }
        return strleft + str.substring(str.length() - length);
    }

    /**
     * 将字符串str中的一段字符全部替换为replaceStr,
     * 例如 replace(4, 3, "6212826382818061", "") 替换结果为"6212061",
     * 例如 replace(4, 3, "6212826382818061", "*") 替换结果为"6212*********061",
     * 只可替换英文、数字
     * @param firstIndex 左边剩余的字符数量
     * @param secondIndex 右边剩余的字符数量
     * @param str 待操作的字符串
     * @param replaceStr 替换的字符串
     * @return
     */
    public static String replace(int firstIndex, int secondIndex, String str, String replaceStr) {
        return str.replaceAll("(?<=\\w{" + firstIndex + "})\\w(?=\\w{" + secondIndex + "})",
            replaceStr);
    }

    /**
     * 验证是否是手机号
     * @param phoneNo
     * @return
     */
    public static boolean isPhoneNo(String phoneNo) {
        String regex = "^1\\d{10}$";
        Pattern pattern = Pattern.compile(regex);
        return pattern.matcher(phoneNo).matches();
    }

}