麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

java字符串中${}或者{}等的占位符替換工具類

2024-07-14 08:43:10
字體:
來源:轉載
供稿:網友

正如標題所述,這是一個替換java字符串中${}或者{}等占位符的工具類,其處理性能比較令人滿意。該類主要通過簡單的改寫myatis框架中的GenericTokenParser類得到。在日常開發過程中,可以將該類進行簡單的改進或封裝,就可以用在需要打印日志的場景中,現在張貼出來給有需要的人,使用方式參考main方法,不再贅述!

public class Parser {  /**   * 將字符串text中由openToken和closeToken組成的占位符依次替換為args數組中的值   * @param openToken   * @param closeToken   * @param text   * @param args   * @return   */  public static String parse(String openToken, String closeToken, String text, Object... args) {    if (args == null || args.length <= 0) {      return text;    }    int argsIndex = 0;    if (text == null || text.isEmpty()) {      return "";    }    char[] src = text.toCharArray();    int offset = 0;    // search open token    int start = text.indexOf(openToken, offset);    if (start == -1) {      return text;    }    final StringBuilder builder = new StringBuilder();    StringBuilder expression = null;    while (start > -1) {      if (start > 0 && src[start - 1] == '//') {        // this open token is escaped. remove the backslash and continue.        builder.append(src, offset, start - offset - 1).append(openToken);        offset = start + openToken.length();      } else {        // found open token. let's search close token.        if (expression == null) {          expression = new StringBuilder();        } else {          expression.setLength(0);        }        builder.append(src, offset, start - offset);        offset = start + openToken.length();        int end = text.indexOf(closeToken, offset);        while (end > -1) {          if (end > offset && src[end - 1] == '//') {            // this close token is escaped. remove the backslash and continue.            expression.append(src, offset, end - offset - 1).append(closeToken);            offset = end + closeToken.length();            end = text.indexOf(closeToken, offset);          } else {            expression.append(src, offset, end - offset);            offset = end + closeToken.length();            break;          }        }        if (end == -1) {          // close token was not found.          builder.append(src, start, src.length - start);          offset = src.length;        } else {          ///////////////////////////////////////僅僅修改了該else分支下的個別行代碼////////////////////////          String value = (argsIndex <= args.length - 1) ?              (args[argsIndex] == null ? "" : args[argsIndex].toString()) : expression.toString();          builder.append(value);          offset = end + closeToken.length();          argsIndex++;          ////////////////////////////////////////////////////////////////////////////////////////////////        }      }      start = text.indexOf(openToken, offset);    }    if (offset < src.length) {      builder.append(src, offset, src.length - offset);    }    return builder.toString();  }  public static String parse0(String text, Object... args) {    return Parser.parse("${", "}", text, args);  }  public static String parse1(String text, Object... args) {    return Parser.parse("{", "}", text, args);  }  /**   * 使用示例   * @param args   */  public static void main(String... args) {    //{}被轉義,不會被替換    System.out.println(Parser.parse("{", "}", "我的名字是//{},結果是{},可信度是%{}", "雷鋒", true, 100));    System.out.println(Parser.parse0("我的名字是${},結果是${},可信度是%${}", "雷鋒", true, 100));    System.out.println(Parser.parse1("我的名字是{},結果是{},可信度是%{}", "雷鋒", true, 100));//    輸出結果如下://    我的名字是{},結果是true,可信度是%100//    我的名字是雷鋒,結果是true,可信度是%100//    我的名字是雷鋒,結果是true,可信度是%100  }}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久夜草 | 欧美成人精品一级 | 精品国产三级a | 91久久国产综合久久91猫猫 | 精品久久www | 免费观看一区二区三区 | 亚洲综合视频网 | 国产免费视频在线 | 在线日韩亚洲 | 日本网站一区二区三区 | 看全色黄大色黄大片女图片 | 99ri在线 | 少妇一级淫片免费放播放 | 久久久久久久不卡 | 久久国产精品免费视频 | 在线a亚洲视频播放在线观看 | 国产亚洲精品久久久久久久久久 | 欧美成在线视频 | 精品1| 国产伦精品一区二区三区在线 | a视频在线播放 | 免费黄色大片网站 | 国产精品久久久久久久久久三级 | 色播av在线 | 4p嗯啊巨肉寝室调教男男视频 | 加勒比综合 | 日本在线一区二区 | 日韩视频在线不卡 | 亚洲福利在线免费观看 | 国产精品99久久久久久大便 | 国产免费观看一区二区三区 | 鲁久久 | free korean xxxxhd | 九九热精| 国产精品久久久久久久久久久久午夜 | 成人在线精品视频 | 13一14毛片免费看 | 91情侣偷在线精品国产 | 毛片免费看电影 | 黄色一级片在线观看 | 一级毛片在线免费播放 |