string资源中的占位符

%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格

%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格

%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=4.5时,输出格式为00.00

strings资源中定义

  <string name="str_uid_format_en">ID:%1$s</string>

代码中使用

 strangerView?.findViewById<TextView>(R.id.tv_id)?.apply {
                text =
                    (String.format(resources.getString(R.string.str_uid_format_en), it.accountId))
            }

效果图
在这里插入图片描述
另外也可以和<![CDATA[ ]]>标签连用

<resources>
    <string name="app_name">KotlinTest</string>
    <string name="name">赵云<Data><![CDATA[<font color="#ff0000"> %0$3s</font>]]></Data></string>
</resources>

代码中使用

 findViewById<TextView>(R.id.tvAAA).apply {
            text = HtmlCompat.fromHtml(String.format(resources.getString(R.string.name),"五虎将"),HtmlCompat.FROM_HTML_MODE_LEGACY)
        }

注dataBinding中如何实例化ViewStub

   var strangerView = mDataBind.vsStrangerCard.viewStub?.let { it.inflate() }

参考博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
从JDBC4.2开始,Java支持使用参数名占位符,以替代传统的问号占位符。在JDK17,使用参数名占位符需要遵循以下步骤: 1. 将MySQL的驱动程序升级到版本8.0.23或以上,因为版本8.0.23提供了对JDBC4.2的支持。 2. 在连接MySQL数据库时,需要在连接字符串添加`rewriteBatchedStatements=true`参数,以开启批量执行功能。 3. 在SQL语句使用冒号加上参数名的方式来代替传统的问号占位符。 4. 使用PreparedStatement对象的setXXX()方法来设置参数值,其XXX表示参数类型,例如setInt()、setString()等方法。 5. 在设置参数值时,需要使用参数名来代替参数位置,例如ps.setInt("id", 1)。 以下是使用参数名占位符实现查询的示例代码: ```java import java.sql.*; public class MySQLDemo { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase?rewriteBatchedStatements=true"; // 数据库连接地址 String user = "root"; // 数据库用户名 String password = "123456"; // 数据库密码 try { // 1. 加载MySQL驱动程序 Class.forName("com.mysql.cj.jdbc.Driver"); // 2. 创建数据库连接 Connection con = DriverManager.getConnection(url, user, password); // 3. 创建PreparedStatement对象,使用参数名占位符 PreparedStatement ps = con.prepareStatement("SELECT * FROM students WHERE id=:id"); // 4. 设置查询参数 ps.setInt("id", 1); // 5. 执行查询 ResultSet rs = ps.executeQuery(); // 6. 处理查询结果 while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("id: " + id + ", name: " + name + ", age: " + age); } // 7. 关闭资源 rs.close(); ps.close(); con.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } } ``` 需要注意的是,由于使用参数名占位符的方式需要在连接字符串添加`rewriteBatchedStatements=true`参数,因此一定要小心防止SQL注入攻击。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值