All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.acyou.leo.framework.util.StringUtil Maven / Gradle / Ivy

package cn.acyou.leo.framework.util;

import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * 补充 String 相关方法
 *
 * @author youfang
 * @version [1.0.0, 2020-7-24 下午 09:31]
 **/
public class StringUtil {
    public static final String SPACE = " ";
    public static final String EMPTY = "";
    public static final String COMMA = ",";
    public static final String DOT = ".";
    /**
     * 换行
     */
    public static final String NEW_LINE = "\r\n";

    /**
     * 拼接重复字符到指定长度
     *
     * 
     * StringUtil.concatLengthChar(4, '9')     = 9999
     * StringUtil.concatLengthChar(4, '0')     = 0000
     * StringUtil.concatLengthChar(5, '8')     = 88888
     * 
* * @param length 长度 * @param character 字符 * @return {@link String} */ public static String concatLengthChar(int length, char character) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) { sb.append(character); } return sb.toString(); } /** * 数据库 like %xx% * * @param value 价值 * @return {@link String} */ public static String likeLR(String value) { return "%" + value + "%"; } /** * 字符串加入逗号 * * @param iterable 可迭代的 * @return {@link String} */ public static String joinOnComma(final Iterable iterable) { return StringUtils.join(iterable.iterator(), COMMA); } /** * 格式化模板 *
     *         String templateStr= "{姓名}今年{岁}啦!";
     *         Map paramMap = new HashMap<>();
     *         paramMap.put("姓名", "王二小");
     *         paramMap.put("岁", "3");
     *         System.out.println(formatTemplate(templateStr, paramMap));//王二小今年3啦!
     *
     * 
* * @param templateStr 模板字符串 * @param paramsMap 参数 * @return 格式化后内容 */ public static String formatTemplate(String templateStr, Map paramsMap) { String templateContent = templateStr; Set> entrySet = paramsMap.entrySet(); for (Map.Entry entry : entrySet) { if (entry.getValue() == null) { continue; } if (templateContent.indexOf(entry.getKey()) > 0) { templateContent = templateContent.replace("{" + entry.getKey() + "}", entry.getValue()); } } return templateContent; } /** * 转换字符串 * * @param obj 对象 * @return 字符串 */ public static String toStr(Object obj) { String str = ""; if (obj != null) { str = obj.toString(); } return str; } /** * 返回文字内容,如果是null -> "-" * * @param str str * @return {@link String} */ public static String nullAsDash(String str) { if (str == null) { return "-"; } return str; } /** * 如果一个对象为空则返回另外一个对象 * * @param value 对象 * @param defaultValue 对象为空时返回 * @return {@link Object} */ public static String isNullOrBlank(Object value, Object defaultValue) { if (isNullOrBlank(value)) { return defaultValue.toString(); } return value.toString(); } /** * 判断字符串是否是空或空串 * * @param str 字符串 * @return 是否是空或空串 */ public static boolean isNullOrBlank(String str) { return str == null || "".equals(str); } /** * 判断字符串是否是空或空串 * * @param str 字符串 * @return 是否是空或空串 */ public static boolean isNotNullOrBlank(String str) { return !isNullOrBlank(str); } /** * 不是null或空字符串 * * @param obj obj * @return boolean */ public static boolean isNotNullOrBlank(Object obj) { return obj != null && isNotNullOrBlank(obj.toString()); } /** * 不是null或空字符串 返回默认值 * * @param obj obj * @param defaultValue 默认值 * @return {@link String} */ public static String isNotNullOrBlank(Object obj, Object defaultValue) { return isNotNullOrBlank(obj) ? obj.toString() : defaultValue.toString(); } /** * 是null或空字符串 * * @param obj obj * @return boolean */ public static boolean isNullOrBlank(Object obj) { return obj == null || isNullOrBlank(obj.toString()); } /** * str长度分割 * * @param sourceStr 源str * @param length 长度 (几个汉字) * @return {@link String[]} */ public static String[] strLengthSplit(String sourceStr, int length) { if (isNullOrBlank(sourceStr)) { return new String[]{"", ""}; } int sp = length * 2; int indexCount = 0; int index = 0; char[] chars = sourceStr.toCharArray(); for (int i = 0; i < chars.length; i++) { char c = chars[i]; if (RegexUtil.isChinese(c)) { indexCount += 2; } else { indexCount++; } if (indexCount > sp) { index = i; break; } } String[] returnStr = new String[]{"", ""}; if (index > 0) { returnStr[0] = sourceStr.substring(0, index); returnStr[1] = sourceStr.substring(index); } else { returnStr[0] = sourceStr; returnStr[1] = ""; } return returnStr; } public static void main(String[] args) { String templateStr = "{姓名}今年{岁}啦!"; Map paramMap = new HashMap<>(); paramMap.put("姓名", "王二小"); paramMap.put("岁", "3"); System.out.println(formatTemplate(templateStr, paramMap)); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy