Java8中关于String参数操作笔记

package com.wondertek.oes.live.commons.util;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringUtil1 {

    private StringUtil1() {
    }

    /**
     * 判断参数是否为空
     *
     * @param strin
     * @return
     */
    public static boolean isNullStr(Object strin) {
        if (strin == null) {
            return true;
        }
        String str = strin.toString();
        boolean flag = false;
        if ("null".equals(str) || "".equals(str) || "".equals(str.trim())) {
            flag = true;
        }
        return flag;
    }

    /**
     * 去除参数中的空格
     *
     * @param strin
     * @return
     */
    public static String trim(String strin) {
        if (isNullStr(strin)) {
            return null;
        }
        return strin.trim();
    }


    /**
     * 首字母转小写
     *
     * @param s
     * @return
     */
    public static String toLowerCaseFirstOne(String s) {
        if (Character.isLowerCase(s.charAt(0))) {
            return s;
        } else {
            return Character.toLowerCase(s.charAt(0)) + s.substring(1);
        }
    }

    /**
     * 首字母转大写
     *
     * @param s
     * @return
     */
    public static String toUpperCaseFirstOne(String s) {
        if (Character.isUpperCase(s.charAt(0))) {
            return s;
        } else {
            return Character.toUpperCase(s.charAt(0)) + s.substring(1);
        }
    }

    /**
     * 得到一个String值的指定长度的字符串形式
     * NOTE:	不足的前面添'0'
     *
     * @param s
     * @param len
     * @param cutHead 当s的长度大于len时,截取方式:true,截掉头部;否则从截掉尾部
     *                例如getStringByAppointLen("12345",3,true) ---> "345"
     * @return
     */
    public static String getStringByAppointLen(String s, int len, boolean cutHead) {
        if (s == null || len <= 0) {
            s = "";
        }
        if (len > s.length()) {
            int size = len - s.length();
            StringBuilder sb = new StringBuilder();
            while (size-- > 0) {
                sb.append("0");
            }
            sb.append(s);
            return sb.toString();
        } else if (len == s.length()) {
            return s;
        } else {
            if (cutHead) {
                return s.substring(s.length() - len, s.length());
            } else {
                return s.substring(0, len);
            }
        }
    }

    /**
     * 得到一个Long值的指定长度的字符串形式
     *
     * @param l
     * @param len
     * @return
     */
    public static String getStringByAppointLen(String l, int len) {
        return getStringByAppointLen(l, len, true);
    }

    /**
     * 通过ID生成存储路径
     *
     * @param id
     * @return
     */
    public static String getFileDirPathById(String dmId) {
        String s = StringUtil1.getStringByAppointLen(dmId, 19);
        StringBuilder sb = new StringBuilder();
        sb.append(s, 0, 5).append("/")
                .append(s, 5, 11).append("/")
                .append(s, 11, 15).append("/")
                .append(s, 15, 19).append("/");
        return sb.toString();
    }

    /**
     * 逗号分隔的字符串去重
     */
    public static String getNoRepeatString(String s) {
        if (isNullStr(s)) {
            return null;
        }
        String[] split = s.split("\\,");
        Set<String> set = new HashSet<>(Arrays.asList(split));
        int i = 1;
        StringBuilder sb = new StringBuilder();
        for (String str : set) {
            if (i == 1) {
                sb.append(str);
            } else {
                sb.append(",").append(str);
            }
            i++;
        }
        return sb.toString();
    }


    /**
     * 去除字符串中的空格、回车、换行符、制表符
     *
     * @param str
     * @return
     */
    public static String replaceBlank(String str) {
        String dest = "";
        if (str != null) {
            Pattern p = Pattern.compile("\\s*|\t|\r|\n");
            Matcher m = p.matcher(str);
            dest = m.replaceAll("");
        }
        return dest;
    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值