java中的占位符,有以下几种等等:
%s字符串类型的占位符
%b布尔类型的占位符
%d整数类型的占位符
%c字符类型的占位符
我们大多情况就只用前两种:
举个例子:
/**
* Created by xiwen on 2021/1/14
*/
@Slf4j
public class TestCode {
public static void main(String[] args) {
String s = "我的名字叫%s,很高兴认识你。你真是%d个小可爱!真的吗?嗯,%b。";
log.info(String.format(s, "希文先森", 1, true));
}
}
运行主方法的结果为:我的名字叫希文先森,很高兴认识你。你真是1个小可爱!真的吗?嗯,true。
注意:%b 的参数可以是结果为布尔类型的表达式。
应用场景:
①拼接sql,相信现在有很多老项目还有在java代码里面拼接sql的,或者是特殊需求,不得不在java代码里面拼接sql,这个占位符就很灵活。
-- 你可以写一条sql完成所有表的增删改查操作,只是举个例子,开发中你可别这么干!
String.format("selet * from %s", "表名");
②当然你也可以使用占位符去打动态日志,例如:
/**
* Created by xiwen on 2021/1/14
*/
@Slf4j
public class TestCode {
public static void main(String[] args) {
String s = "我的名字叫%s,很高兴认识你。你真是%d个小可爱!真的吗?嗯,%b。";
log.info(String.format(s, "希文先森", 1, true));
//获取方法名
String method = Thread.currentThread().getStackTrace()[1].getMethodName();
//日志主体
String s1 = "当前执行的方法为%s,入参为%s";
log.info(String.format(s1, method, "param"));
}
}
主方法运行结果为:我的名字叫希文先森,很高兴认识你。你真是1个小可爱!真的吗?嗯,true。
当前执行的方法为main,入参为param
③同时你也可以用他来返回动态的错误提示信息,以下举个例子
public static final String FORM_NOT_ALLOW_ERR_MSG = "%s最多可创建%d个表单,若需要创建更多表单,请升级版本";
结果为:免费版最多可以创建3个表单,若需要创建更多,请升级版本
总结:刚开始学java的时候,学什么就是什么,学完也不知道怎么使用,开动脑筋,学以致用,慢慢你就会发现java很好玩,可以很优雅。