文章目录
为什么要用占位符?
因为代码更直观,修改起来更方便。
打印日志的时候,支持占位符,非常的方便。
日志格式化(推荐)
String name="澹台名";
String age="30";
logger.info("我叫{},今年{}岁。",name,age);
logger日志的格式,这应该是最清爽的格式。
拼接返回信息的时候也想用占位符,怎么办呢。
字符串拼接
String name="任恒之";
String age="30";
System.out.println("我叫"+name+",今年"+age+"岁。");
最传统的拼接方式,如果参数多,苦乐自知。
String.format()格式化
String url = "我叫%s,今年%s岁。";
String name = "程咬金";
String age = "28";
url = String.format(url,name,age);
System.out.println(url);
比较耗时。
MessageFormat.format()格式化
String url02 = "我叫{0},今年{1}岁。";
String name = "李渊";
String age = "28";
url02 = MessageFormat.format(url02,name,age);
System.out.println(url02);
这种也比较耗时。
使用Stringbuilder 或者 stringBuffer
String name="李元霸";
String age="30";
new StringBuffer("我叫").append(name).append(",今年")
.append(age).append("岁。");
这个效率高些,代码也不清爽。
日志自带的格式化工具(推荐)
不用费心思了,因为slf4j自带解析工具:
String name="鲁智深";
String age="30";
FormattingTuple format =
MessageFormatter.format("我叫{},今年{}岁。", name,age);
System.out.println(format.getMessage());
和logger日志基本一样,而且效率也不错。
注:获取stirng要用getMessage()。 不要直接输出对象,也不要用toString()。