如何在 java 中正确格式化包含 2 个整数的字符串

How to properly format a string with 2 integers in java

我收到一个类似于“%value1% - %value2% interval”的字符串,我有两个整数,比方说 v1 和 v2,这两个值必须替换相应的字段和字符串才能查看最后 "v1 - v2 interval" 我尝试了以下方法:

StringBuilder valueBuilder = new StringBuilder();
valueBuilder.append("%value1% - %value2% interval");
ageBuilder.append(String.format(Locale.getDefault(), "%1$d - %2$d interval", value1, value2))

我无法修改字符串的初始“%value1% - %value2% 间隔”部分!我只能用我收到的那样替换 %value1% 和 %value2%

你有什么建议吗?谢谢!

您可以使用说明符将变量插入到字符串中。

int value1 = 1;
int value2 = 2;

StringBuilder valueBuilder = new StringBuilder();
valueBuilder.append(" ");
ageBuilder.append(String.format(Locale.getDefault(), "v%d - v%d interval", value1, value2))

%d 将替换为 value1value2


来自 String.format()

的输出
v1 - v2 interval

在此处查看更多信息:https://dzone.com/articles/java-string-format-examples

希望这对您有所帮助

    int value1 = 11, value2 =12;
    String formattedString = String.format("%s %d - %d", Locale.getDefault(), value1, value2);
    System.out.println(formattedString);

输出是

en_US 11 - 12

使用replace()方法:

StringBuilder valueBuilder = new StringBuilder();
int v1 = 10;
int v2 = 20;
valueBuilder.append(
        "%value1% - %value2% interval"
        .replace("%value1%", String.valueOf(v1))
        .replace("%value2%", String.valueOf(v2))
);
System.out.println(valueBuilder);

输出:

10 - 20 interval