Java中占位符的实战运用

2023-11-19

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很好玩,可以很优雅。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中占位符的实战运用 的相关文章

  • 在 Java Swing 中检测 JScrollPane 上的 mouseClick 事件

    如果我有这样的东西 我可以使用布尔标志 performAdjustment 控制自动滚动 static boolean performAdjustment true JTextArea textArea new JTextArea JScr
  • JPanel透明背景和显示元素[重复]

    这个问题在这里已经有答案了 我插入一个背景图e 变成 aJPanel但一些界面元素消失了 以下 Java Swing 元素不会出现 标签标题 标签 usuario 标签 密码 按钮加速器 你能否使图像透明或元素不透明 setOpaque f
  • Java/JAXB:将具有相同名称但不同属性值的 XML 元素解组到不同的类成员

    我正在尝试根据其属性之一将具有多个 Fields 元素的 XML 解析为不同的类成员 这是 XML
  • 有效地查找正则表达式的所有重叠匹配项

    这是后续与 java 正则表达式匹配的所有重叠子字符串 https stackoverflow com q 11303309 244526 有没有办法让这段代码更快 public static void allMatches String
  • 从 eclipse 运行时 java.io.FileNotFoundException: (没有这样的文件或目录)

    我正在写入文件并想要控制台输出 TODO Create a game engine and call the runGame method public static void main String args throws Excepti
  • 无法从后台服务通过 WiFi 访问互联网

    我将直接介绍我发现的一些事实 数据 如果您遇到 解决了类似的问题 请帮助我 我每 5 分钟向服务器发送一次数据 除非用户在服务器的帮助下手动将其关闭 wakeful broadcast receiver通过一个intent service
  • Maven 多模块项目结构问题

    自从过去几周构建我的 Maven 多模块项目以来 这是我的一次有趣的经历 当我决定使用 Maven 进行构建生命周期管理时 我有几个原因希望选择 Maven A 大多数开发团队都是分开的 这样每个团队都可以在项目中的单独模块上工作 例如团队
  • 会话 bean 中的 EntityManager 异常处理

    我有一个托管无状态会话 bean 其中注入了 EntityManager em 我想做的是拥有一个具有唯一列的数据库表 然后我运行一些尝试插入实体的算法 但是 如果实体存在 它将更新它或跳过它 我想要这样的东西 try em persist
  • LibGdx 如何使用 OrthographicCamera 滚动?

    我已经找了 10 个小时 字面意思 我已经完成了 我需要问一下 事情是我正在学习如何使用 LibGdx 来编写 Java 游戏 我正在做一个水平太空飞船游戏 所以 我最糟糕的问题是我不知道如何滚动 我认为绘制会更好地解释 我想绘制一个巨大的
  • JSP 标签+ scriptlet。如何启用脚本?

    我有一个使用标签模板的页面 我的 web xml 非常基本 我只是想在页面中运行一些代码 不 我对标签或其他替代品不感兴趣 我想使用不好的做法 scriptlet 哈哈 到目前为止 我收到了 HTTP ERROR 500 错误 Script
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • 如何使用 Java 原生接口从 Java 调用 Go 函数?

    可以通过以下方式调用 C 方法JNA https en wikipedia org wiki Java Native AccessJava 中的接口 如何使用 Go 实现相同的功能 package main import fmt impor
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • 通用 JSF 实体转换器[重复]

    这个问题在这里已经有答案了 我正在编写我的第一个 Java EE 6 Web 应用程序作为学习练习 我没有使用框架 只是使用 JPA 2 0 EJB 3 1 和 JSF 2 0 我有一个自定义转换器 用于将存储在 SelectOne 组件中
  • 是什么原因导致“对象不是声明类的实例”? [复制]

    这个问题在这里已经有答案了 可能的重复 使用反射调用方法时 为什么会出现 对象不是声明类的实例 https stackoverflow com questions 7202988 why do i get object is not an
  • 使用 Maven 3 时 Cobertura 代码覆盖率为 0%

    读完这篇文章后 将 Cobertura 与 Maven 3 0 2 一起使用的正确方法是什么 https stackoverflow com questions 6931360 what is the proper way to use c
  • 防止 Firebase 中的待处理写入事务不起作用

    我的目标是在单击按钮时将名称插入 Cloud Firestore 中 但如果用户未连接到互联网 我不希望保存处于挂起状态 我不喜欢 Firebase 保存待处理写入的行为 即使互联网连接已恢复 我研究发现Firebase 开发人员建议使用事
  • Android同步onSensorChanged?

    这是我的问题的后续 Android线程可运行性能 https stackoverflow com questions 36395440 android thread runnable performance 我在理解应用程序的同步方法时遇到
  • Java SE + Spring Data + Hibernate

    我正在尝试使用 Spring Data Hibernate 启动 Java SE 应用程序 并且到目前为止已经完成了以下操作 配置文件 Configuration PropertySource classpath hibernate pro
  • 日期时间解析异常

    解析日期时 我的代码中不断出现异常错误 日期看起来像这样 Wed May 21 00 00 00 EDT 2008 这是尝试读取它的代码 DateTimeFormatter formatter DateTimeFormatter ofPat

随机推荐

  • 虚拟服务器如何传东西,虚拟服务器如何传东西

    虚拟服务器如何传东西 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 计费项包括存储费和流量费 存储费根据存储库的不同进行
  • Reinforcement Learning 强化学习(四)

    Task03 本次学习主要参照Datawhale开源学习及强化学习蘑菇书Easy RL 第4章 策略梯度 Policy Gradient 4 1 策略梯度算法 在强化学习中有 3 个组成部分 演员 actor 环境 environment
  • odoo tree form 视图禁止创建、修改、删除、复制

  • 用标准C语言初始化线性表,c语言实现线性表的初始化,创建,查找,删除

    1 第一步定义线性表结构 typedef struct ElementType data MaxSize int length Lineartable 2 第二步线性表初始化 初始化线性表 Lineartable INITAL Linear
  • Go 每日一库之 gjson

    快速使用 先安装 go get github com tidwall gjson 后使用 package main import fmt github com tidwall gjson func main json name first
  • Hackinglab(鹰眼)——解密关

    目录 1 以管理员身份登录系统 2 邂逅对门的妹纸 3 万恶的Cisco 4 万恶的加密 5 喜欢泡网吧的小明 6 异常数据 7 md5真的能碰撞嘛 8 小明爱上了一个搞硬件的小姑凉 9 有签名限制的读取任意文件 10 美丽的邂逅与密码器的
  • 什么是卷积

    什么是卷积 卷积 convolution 是一种运算 你可以类比于加 减 乘 除 矩阵的点乘与叉乘等等 它有自己的运算规则 卷积的符号是星号 表达式为 连续的为 f g
  • 小程序web-view打开PDF格式文件的安卓苹果兼容性问题

    小程序中打开pdf格式原本可以使用web view 承载网页的容器 会自动铺满整个小程序页面 个人类型的小程序暂不支持使用
  • 《小岛区块链》之区块链起源

    今天我们开始 小岛区块链 的第三章节 智能合约 本文衔接于 小岛区块链 第二章节 共识之后 为方便大家理解 请先阅读 小岛区块链 之起源 小岛区块链 之共识 一 选举记账还能再升级一下吗 上回说到 在小郑的提议下 鹿谷的村民们都开始按照投票
  • 2019年电赛之路——2015年电子设计竞赛A题任务设计

    参加19年电赛 我们奔着电源题来的 所以我们一开始要练习的题目就选定了15年的A题 因为我们找到了几个国一方案 但是只有一个方案 代码和PCB图都没有 这也是我们失误的地方 本来的路线应该是找一个成品方案 模仿着做下来 先做下来一个题目后
  • 剑指 Offer 05. 替换空格(java+python)

    请实现一个函数 把字符串 s 中的每个空格替换成 20 示例 1 输入 s We are happy 输出 We 20are 20happy 限制 0 lt s 的长度 lt 10000 java StringBuilder StringB
  • tomcat7启动报taglib标签错误

    问题描述 应用在tomcat6上发布没有问题 部署到tomcat7后报错 不识别配置的taglib标签 问题截图如下 解决方法 查询应用环境 除服务器为tomcat7外 配置的web xml 头文件为 测试头文件为
  • Arduino 自动初始化ESP8266为透传模式

    通过上篇可以把esp8266设置成透传模式 但掉电后esp8266会退出透传模式 需要重新初始化 这样arduino和esp8266结合使用时 每次重启后都要通过电脑重新设置esp8266进入透传模式 这里通过把AT指令写进arduino程
  • elasticsearch 为“非查询字段”不建索引 index store

    官方文档 index 简章翻译 文末附原文 索引index 这个参数可以控制字段应该怎样建索引 怎样查询 它有以下三个可用值 no 不把此字段添加到索引中 也就是不建索引 此字段不可查询 not analyzed 将字段的原始值放入索引中
  • python元组练习题

    Python 元组综合练习 使用python语言创建空元组 score 按学号顺序 由小到大 保存多个学生一门课程的 考试成绩 调用元组操作的常用函数实现以下功能 1 创建score 元组 其中包含10 个数值 68 87 92 100 7
  • Golang当中的定时器

    定时器 前言 定时器的基本使用 前言 在平时写代码的时候 我们经常会遇到在将来某个时间点或者间隔一段时间重复执行函数 这个时候我们就可以考虑使用定时器 本片文章主要介绍一下golang当中的几个常用的定时器 time Timer time
  • (二十六)admin-boot项目之基于注解的数据字段脱敏

    项目地址 https gitee com springzb admin boot 如果觉得不错 给个 star 简介 这是一个基础的企业级基础后端脚手架项目 主要由springboot为基础搭建 后期整合一些基础插件例如 redis xxl
  • VMware 14 安装win7x64

    所需工具 VMware17 windows镜像 windows镜像在脚本之家下载的 1 新建虚拟机 文件 gt 新建虚拟机 gt 下一步 2 选择 稍候安装操作系统 下一步 3 选择操作系统和版本 下一步 4 设置虚拟机名称和存放位置 选择
  • java动态创建xml文件

    private static void createXml String dest throws Exception DocumentBuilderFactory factory DocumentBuilderFactory newInst
  • Java中占位符的实战运用

    java中的占位符 有以下几种等等 s字符串类型的占位符 b布尔类型的占位符 d整数类型的占位符 c字符类型的占位符 我们大多情况就只用前两种 举个例子 Created by xiwen on 2021 1 14 Slf4j public