Java 实现C#中的String.format效果 解决("我是{0},今年了","whaozl") bug
/** * 需要引入com.alibaba.fastjson.1.2.8 * 两种调用方式 * String template1="我是{0},今年{1}了"; * String template2="我是{name},今年{age}了"; * String result1=HuaatUtil.format(template1,"loogn",22); * String result2=HuaatUtil.format(template2, "{'name':'loogn','age':22}");//注意JSON写法 * 两个结果都是"我是loogn,今年22了" * arguments[0].getClass().getName() == String.class.getName() */ public static String format(String str, Object ... arguments) { if(arguments.length>0){ if(arguments.length==1 && arguments[0] instanceof String){//{name:"loogn",age:22} try{ @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String,Object>)JSON.parse(arguments[0].toString()); for(Map.Entry<String,Object> entry : map.entrySet()){ str=str.replaceAll("\\{" + entry.getKey() + "\\}", entry.getValue().toString());//注意正则写法 } }catch(Exception e){//解决 ("我是{0},今年了","whaozl") bug str = str.replaceAll("\\{0\\}", arguments[0].toString()); } }else {//"loogn",22); for(int i=0; i<arguments.length; i++){ if(arguments[i]!=null){ str = str.replaceAll("\\{" + i + "\\}", arguments[i].toString()); } } } } return str; } public static void main(String[] args) { String template1="我是{0},今年{1}了"; String template2="我是{name},今年{age}了"; String result1=HuaatUtil.format(template1,"loogn",22); String result2=HuaatUtil.format(template2, "{'name':'loogn','age':22}");//注意JSON写法 System.out.println(result1 + "\n" + result2); }
Java 实现C#中的String.format效果 解决("我是{0},今年了","whaozl") bug的更多相关文章
- Java 和JavaScript实现C#中的String.format效果
1.Java实现 /** * 需要引入com.alibaba.fastjson.1.2.8 * String result2=HuaatUtil.format(templa ...
- php示例代码之类似于C#中的String.Format方法
php示例代码之类似于C#中的String.Format方法 原文来自于 http://stackoverflow.com/questions/1241177/c-string-format-equ ...
- SpringBoot整合Swagger2案例,以及报错:java.lang.NumberFormatException: For input string: ""原因和解决办法
原文链接:https://blog.csdn.net/weixin_43724369/article/details/89341949 SpringBoot整合Swagger2案例 先说SpringB ...
- java中的String.format使用
format(String format, Objece... argues)函数相当于C语言中的printf函数,但是相对来说更灵活. 和C中的printf函数差不多,在fo ...
- js中String.prototype.format類似于.net中的string.formitz效果
String.prototype.format = function(args) { if (arguments.length>0) { var result = this; if (argum ...
- C#中的String.Format方法(转)
一.定义String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项. 如: (1)string p1 = "Jackie";strin ...
- C#中的String.Format方法
定义String.Format是将指定的String类型的数据中的每个格式项替换为相应对象的值的文本等效项.(1)string p1="xiaomeng";string p2=&q ...
- C#中的String.Format介绍
关键字:C# string.format作者:txw1958原文:http://www.cnblogs.com/txw1958/archive/2012/11/15/csharp-string_for ...
- java字符串格式化性能对比String.format/StringBuilder/+拼接
String.format由于每次都有生成一个Formatter对象,因此速度会比较慢,在大数据量需要格式化处理的时候,避免使用String.format进行格式化,相反使用StringUtils.l ...
随机推荐
- SQL- 将一张表的数据插入到另一张表,表结构不一致(加条件)
公司业务需要,在对表进行操作的时候将操作人和操作记录记录到日志表里.记录下来以供参考和学习. 首先准备两张测试表:Info以及InfoLog 1.表结构相同的情况下: insert into Info ...
- MaxScale中间件部署数据库读写分离
操作系统:CentOS7 (Core) 数据库:MariaDB-10.2.6-linux-glibc_214-x86_64 MaxScale服务器:192.168.40.134 主服务器:192.16 ...
- FastAdmin-T
FastAdmin 注意食用姿势,建议先通读官方文档一次,在看 根据环境及配置的不同,仅作参考 修改mysql表注释ALTER TABLE student COMMENT '学生表'; fastadm ...
- C# AE 通过要素类工作空间将shp路径string类型对象转换为IFeatureClass;
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();//打开shapefile工作空间openFile ...
- eclipse中出现错误 Syntax error, insert "}" to complete Block
结果原因如下 划红线的地方多出来类似于空格的占位符,也许这样看不清楚. 我们来显示空格.制表符和回车键. Window->Preferences->General->Editors- ...
- 【DSP开发】HyperLink 编程和性能考量
冯华亮/Brighton Feng---Communication Infrastructure 摘要 HyperLink 为两个 KeyStone 架构 DSP 之间提供了一种高速,低延迟,引脚数量 ...
- 获取JSON中所有的KEY
采用递归的方式,遍历JSON中所有的KEY. JSON格式如下: {"username":"tom","age":18,"addr ...
- 【STM32】STM32串口配置的一般步骤(库函数)
STM32串口配置的一般步骤(库函数)(1)串口时钟使能:RCC_APBxPeriphClockCmd(); GPIO时钟使能:RCC_AHBxPeriphClockCmd();(2)引脚复用映 ...
- PTA(Basic Level)1048.数字加密
本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余--这里用 J 代表 ...
- Logger Rate Limiter
Design a logger system that receive stream of messages along with its timestamps, each message shoul ...