StrUtils

package com.izkml.mlyun.core.tool.util;

import cn.hutool.core.util.StrUtil;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;

/**
 * @author atom
 */
public class StrUtils extends StrUtil {
   public static final String UNKNOWN = "unknown";
   public static final String UTF_8 = "UTF-8";

   public static String format(@Nullable String message, @Nullable Object... arguments) {
      // message 为 null 返回空字符串
      if (message == null) {
         return StrUtil.EMPTY;
      }
      // 参数为 null 或者为空
      if (arguments == null || arguments.length == 0) {
         return message;
      }
      StringBuilder sb = new StringBuilder((int) (message.length() * 1.5));
      int cursor = 0;
      int index = 0;
      int argsLength = arguments.length;
      for (int start, end; (start = message.indexOf('{', cursor)) != -1 && (end = message.indexOf('}', start)) != -1 && index < argsLength; ) {
         sb.append(message, cursor, start);
         sb.append(arguments[index]);
         cursor = end + 1;
         index++;
      }
      sb.append(message.substring(cursor));
      return sb.toString();
   }

   public static String getShortName(String className) {
      Assert.hasLength(className, "Class name must not be empty");
      int lastDotIndex = className.lastIndexOf(46);
      int nameEndIndex = className.indexOf("$$");
      if (nameEndIndex == -1) {
         nameEndIndex = className.length();
      }

      String shortName = className.substring(lastDotIndex + 1, nameEndIndex);
      shortName = shortName.replace('$', '.');
      return shortName;
   }

   /**
    *
    * @param sb
    * @param strs
    * @return
    */
   public static StringBuilder appendBuilder(StringBuilder sb, CharSequence... strs) {
      for (CharSequence str : strs) {
         sb.append(str);
      }
      return sb;
   }
}

认真可以把事情做对,而用心却可以做到完美
原文地址:https://www.cnblogs.com/fangh816/p/13295411.html