亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91美女高潮出水| 国产精品www| 最近2019年中文视频免费在线观看| 国产精品av电影| 精品久久久久久中文字幕一区奶水| 久久天天躁狠狠躁夜夜av| 精品国产91久久久久久| 国产精品视频久| 91香蕉国产在线观看| 成人黄色av免费在线观看| 性色av一区二区三区| 国产一区视频在线| 日韩精品在线私人| 日韩电影第一页| 中文字幕欧美精品在线| 69久久夜色精品国产7777| 国产69精品久久久久9| 久久久成人av| 欧美在线观看一区二区三区| 国产美女搞久久| 色偷偷91综合久久噜噜| 亚洲男子天堂网| 久久影院免费观看| 国产日韩精品在线播放| 欧美乱大交xxxxx| 国产suv精品一区二区三区88区| 91社影院在线观看| 日韩在线观看免费av| 国产精品av免费在线观看| 精品久久久久久国产91| 日本不卡视频在线播放| 欧美激情亚洲一区| 国产欧美日韩中文字幕| 欧美有码在线观看视频| 4k岛国日韩精品**专区| 日韩精品高清视频| 亚洲欧美激情视频| 91精品久久久久久久久中文字幕| 成人激情春色网| 在线观看不卡av| 久久伊人精品天天| 亚洲欧美日韩天堂| 久久久视频精品| 亚洲人成在线电影| 日本免费一区二区三区视频观看| 色综合久久精品亚洲国产| 美女视频黄免费的亚洲男人天堂| 2019中文在线观看| 亚洲iv一区二区三区| 亚洲性猛交xxxxwww| 亚洲精品黄网在线观看| 欧美wwwwww| 日日摸夜夜添一区| 97人洗澡人人免费公开视频碰碰碰| 国产精品大片wwwwww| 成人淫片在线看| 亚洲国产精品大全| 国产精品国产亚洲伊人久久| 日本一区二区在线播放| 国产成人精品最新| 亚洲国产成人av在线| 中文字幕亚洲欧美日韩高清| 国产在线观看精品| 欧美劲爆第一页| 亚洲色图日韩av| 麻豆成人在线看| 欧美成人激情图片网| 欧美一级淫片videoshd| 91po在线观看91精品国产性色| 欧美大片va欧美在线播放| 久久男人的天堂| 在线日韩日本国产亚洲| 成人福利网站在线观看11| 亚洲国产日韩欧美在线动漫| 懂色aⅴ精品一区二区三区蜜月| 欧美日韩免费在线观看| 欧美激情网站在线观看| 亚洲xxxxx| 国产精品偷伦视频免费观看国产| 欧美成人中文字幕在线| 在线观看欧美成人| 国产精品久久久久久亚洲影视| 九九九久久国产免费| 精品国产乱码久久久久久虫虫漫画| 欧美一区二区.| 日本免费久久高清视频| 92看片淫黄大片看国产片| 亚洲福利小视频| 亚洲日韩中文字幕在线播放| 亚洲娇小xxxx欧美娇小| 国产色婷婷国产综合在线理论片a| 亚洲第一福利视频| 668精品在线视频| 亚洲欧美国产一本综合首页| 亚洲精品永久免费| 在线日韩中文字幕| 国产精品久久久久久超碰| 一区二区国产精品视频| 亚洲自拍欧美色图| 欧美亚洲日本黄色| 欧美成人激情视频免费观看| 九九热精品在线| 国产精品久久久久久五月尺| 精品国产欧美一区二区三区成人| 自拍偷拍亚洲区| 国产精自产拍久久久久久蜜| 中文国产亚洲喷潮| 日韩精品中文字幕视频在线| 超碰日本道色综合久久综合| 91精品视频免费看| 日韩中文在线不卡| 中文字幕国产精品久久| 欧美性高潮床叫视频| 久久精品视频va| 亚洲第一综合天堂另类专| 日韩av免费在线观看| 欧美激情精品久久久久久黑人| 日韩欧美在线看| 91国产在线精品| 日韩最新中文字幕电影免费看| 中文字幕日韩精品有码视频| 亚洲一区二区三区成人在线视频精品| 亚洲最大的av网站| 欧美日韩亚洲成人| 日韩精品极品在线观看播放免费视频| 亚洲午夜av久久乱码| 久久精品2019中文字幕| 奇米四色中文综合久久| 久久99久久亚洲国产| 精品国产91乱高清在线观看| 国产欧美日韩最新| 色香阁99久久精品久久久| 91在线观看免费观看| 欧美中文字幕在线观看| 国产精品av免费在线观看| 国产视频精品久久久| 国产一区香蕉久久| 日韩精品视频三区| 亚洲在线免费看| 欧美香蕉大胸在线视频观看| 最近更新的2019中文字幕| 欧美性jizz18性欧美| 18久久久久久| 国产一区二区在线免费| 久久久www成人免费精品| 亚洲丝袜在线视频| 欧美国产日韩一区二区在线观看| 欧美黄色三级网站| 国产精品美女免费看| 精品久久香蕉国产线看观看gif| 26uuu国产精品视频| 久久久极品av| 欧美日韩亚洲系列| 中文国产成人精品久久一| 久久中文字幕一区| 91国产视频在线| 91精品啪在线观看麻豆免费| 欧美亚洲午夜视频在线观看| 色妞色视频一区二区三区四区| 成人信息集中地欧美| 欧美激情在线一区| 91av在线国产| 国产精品黄色av| 亚洲精品久久久久中文字幕欢迎你|