如何格式化具有多个占位符和一个值的字符串
How to format string with many placeholders and one value
我有一个可以更改的字符串模板,并且我只想在所有占位符中插入一个值。例如:
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
我有一个可以更改的字符串模板,并且我只想在所有占位符中插入一个值。例如:
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