日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字符串格式化---StrFormatter

發布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符串格式化---StrFormatter 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*** 字符串格式化* * @author Mr.wang*/ public class StrFormatter {public static final String EMPTY_JSON = "{}";public static final char C_BACKSLASH = '\\';public static final char C_DELIM_START = '{';public static final char C_DELIM_END = '}';/*** 格式化字符串<br>* 此方法只是簡單將占位符 {} 按照順序替換為參數<br>* 如果想輸出 {} 使用 \\轉義 { 即可,如果想輸出 {} 之前的 \ 使用雙轉義符 \\\\ 即可<br>* 例:<br>* 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>* 轉義{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>* 轉義\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>* * @param strPattern 字符串模板* @param argArray 參數列表* @return 結果*/public static String format(final String strPattern, final Object... argArray){if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)){return strPattern;}final int strPatternLength = strPattern.length();// 初始化定義好的長度以獲得更好的性能StringBuilder sbuf = new StringBuilder(strPatternLength + 50);int handledPosition = 0;int delimIndex;// 占位符所在位置for (int argIndex = 0; argIndex < argArray.length; argIndex++){delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition);if (delimIndex == -1){if (handledPosition == 0){return strPattern;}else{ // 字符串模板剩余部分不再包含占位符,加入剩余部分后返回結果sbuf.append(strPattern, handledPosition, strPatternLength);return sbuf.toString();}}else{if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH){if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH){// 轉義符之前還有一個轉義符,占位符依舊有效sbuf.append(strPattern, handledPosition, delimIndex - 1);sbuf.append(Convert.utf8Str(argArray[argIndex]));handledPosition = delimIndex + 2;}else{// 占位符被轉義argIndex--;sbuf.append(strPattern, handledPosition, delimIndex - 1);sbuf.append(C_DELIM_START);handledPosition = delimIndex + 1;}}else{// 正常占位符sbuf.append(strPattern, handledPosition, delimIndex);sbuf.append(Convert.utf8Str(argArray[argIndex]));handledPosition = delimIndex + 2;}}}// 加入最后一個占位符后所有的字符sbuf.append(strPattern, handledPosition, strPattern.length());return sbuf.toString();} }

總結

以上是生活随笔為你收集整理的字符串格式化---StrFormatter的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。