string的格式化、类似logger日志的占位符


为什么要用占位符?
因为代码更直观,修改起来更方便。

打印日志的时候,支持占位符,非常的方便。

日志格式化(推荐)

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()。

猜你喜欢

转载自blog.csdn.net/enthan809882/article/details/114089979