Java 和JavaScript实现C#中的String.format效果
1、Java实现
/** * 需要引入com.alibaba.fastjson.1.2.8 * String result2=HuaatUtil.format(template2, "{'name':'loogn','age':22}");//注意JSON写法 * 两个结果都是"我是loogn,今年22了" * arguments[0].getClass().getName() == String.class.getName() * 两种调用方式 * String template1="我是{0},今年{1}了"; * String template2="我是{name},今年{age}了"; * String result1=HuaatUtil.format(template1,"loogn",22); */ public static String format(String str, Object ... arguments) { if(arguments.length>0){ if(arguments.length==1 && arguments[0] instanceof String){//{name:"loogn",age:22} @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());//注意正则写法 } }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); }
2、JavaScript实现(有参考,谢谢http://www.jb51.net/article/43701.htm,源头找不到了)
/** *两种调用方式 *var template1="我是{0},今年{1}了"; *var template2="我是{name},今年{age}了"; *var result1=template1.format("loogn",22); *var result2=template2.format({name:"loogn",age:22}); *两个结果都是"我是loogn,今年22了" */ String.prototype.format = function (args) { var result = this; if (arguments.length > 0) { if (arguments.length == 1 && typeof (args) == "object") { for (var key in args) { if (args[key] != undefined) { var reg = new RegExp("({" + key + "})", "g"); result = result.replace(reg, args[key]); } } } else { for (var i = 0; i < arguments.length; i++) { if (arguments[i] != undefined) { //var reg = new RegExp("({[" + i + "]})", "g");//这个在索引大于9时会有问题,谢谢何以笙箫的指出 var reg = new RegExp("({)" + i + "(})", "g"); result = result.replace(reg, arguments[i]); } } } } return result;
}
Java 和JavaScript实现C#中的String.format效果的更多相关文章
- Java 实现C#中的String.format效果 解决("我是{0},今年了","whaozl") bug
/** * 需要引入com.alibaba.fastjson.1.2.8 * 两种调用方式 * String template1="我是{0},今年{1 ...
- php示例代码之类似于C#中的String.Format方法
php示例代码之类似于C#中的String.Format方法 原文来自于 http://stackoverflow.com/questions/1241177/c-string-format-equ ...
- java中的String.format使用
format(String format, Objece... argues)函数相当于C语言中的printf函数,但是相对来说更灵活. 和C中的printf函数差不多,在fo ...
- Javascript中的String.format方法实现
<script type='text/javascript'> String.format = function() { var s = arguments[0]; for (var i ...
- 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 ...
- js中的string.format
String.prototype.format = function(args) { var result = this; if (arguments.length > 0) { if (arg ...
- Jquery 中使用String.Format
第一种方法: String.format = function() { if (arguments.length == 0) return null; var str = arguments[0]; ...
随机推荐
- CentOS下安装完php外网无法访问的问题
1. cd /etc/selinux/ vim config SELINUX=disabled 2.通过界面关闭防火墙
- extentreports 测试报告引用extend.js/css失败
测试工程引用extentreports 生成的测试报告,因为报告中的js和css网络不通,所以页面乱码 解决思路: 下载需要的js.css放到测试工程的static目录下 下载extentreport ...
- //C#中的访问数据符
[在命名空间里面直接定义类型只能用internal 或 public ] [要被同个解决方案内 其他项目访问 ,加引用 导命名空间]. [类的默认修饰符是internal] 1.Private ...
- Android逆向——破解水果大战
最近公司需要测试安卓app安全,但安卓基本上0基础,决定开始学习下安卓逆向根据吾爱破解上教程 <教我兄弟学Android逆向系列课程+附件导航帖> https://www.52pojie. ...
- Android开发 移动端适配
1 UI自适应(UGUI) UI自适应又分为锚点自适应和缩放.锚点主要控制UI控件在父控件之中的位置,同时也能影响缩放. 锚点自适应缩放: 我们使用UGUI创建一个界面,设计使用1920x1080分辨 ...
- nginx +域名
文件nginx.config: server { listen 80 ; server_name dns19.hichina.com;location / { proxy_pass http://12 ...
- 最大熵马尔科夫模型(MEMM)及其标签偏置问题
定义: MEMM是这样的一个概率模型,即在给定的观察状态和前一状态的条件下,出现当前状态的概率. Ø S表示状态的有限集合 Ø O表示观察序列集合 Ø Pr(s|s’,o):观察和状态转移概 ...
- 6.maven的安装
JAVA配置 JAVA_HOME=安装目录 PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAV ...
- 从零开始,SpreadJS新人学习笔记【第4周】
数据绑定.脏数据和单引号前缀 本周,让我们一起来学习SpreadJS 的数据绑定.脏数据和单引号前缀,希望我的学习笔记能够帮助你们,从零开始学习 SpreadJS,并逐步精通. 在此前的学习笔记中,相 ...
- kafka安装使用配置1.1
官方文档 rz上传到/usr/local/下 解压 tar xzvf 文件 改名 mv 文件 名字 环境变量 vi /etc/profile export KAFKA_HOME=/usr/local/ ...