java - 如何格式化具有多个占位符和一个值的字符串
问题描述
我有一个可以更改的字符串模板,并且我想在所有占位符中插入一个值。例如:
String str = "He%s%so, wor%sd";
String value = "L";
我知道接下来我可以做:
String.format(str, value, value, value);
但是如果这个字符串改变了,我如何在不改变代码的情况下格式化它呢?
解决方案
只需像这样使用%1$s而不是%s:
String str = "He%1$s%1$so, wor%1$sd";
String value = "L";
System.out.println(String.format(str, value)); //HeLLo, worLd
实际上,您可以使用 %2, %3... 来指定参数的索引:
System.out.println(String.format("%2$s --- %1$s", "A", "B")); //B --- A
推荐阅读
- scala - 使用 Option[Type] 进行 Scala 模式匹配
- xml - 从 shell 向 XML 文档的默认名称空间的标签添加名称空间前缀
- sql - 特定条件下同一列的平均值(SQL Server)
- java - 无法设置 TextView 的文本
- c - 当要求链接 .a 文件时,g++ / gcc 会做什么?
- xaml - 为这个 xaml 实现的代码在哪里
- django - 如何在 Django 管理员中更新活跃用户时发送邮件?
- javascript - 使用 FileUploader 动态添加 ImagePreview
- java - 实体管理器未持久保存在数据库中
- javascript - 如何分离嵌套的 forEach 方法?