【问题标题】:How to properly format a string with 2 integers in java如何在java中正确格式化具有2个整数的字符串
【发布时间】:2020-06-03 17:17:33
【问题描述】:

我收到一个类似于“%value1% - %value2% 间隔”的字符串,我有两个整数,比如说 v1 和 v2,这两个值必须替换相应的字段和要查看的字符串结束“v1 - v2 间隔” 我尝试了以下方法:

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% 替换它

你有什么建议吗?谢谢!

【问题讨论】:

  • 你检查 System.out.printf 了吗?

标签: java string format string-formatting stringbuilder


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    使用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
    

    【讨论】:

      【解决方案3】:

      希望对你有帮助

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

      输出是

      en_US 11 - 12
      

      【讨论】:

        猜你喜欢
        • 2014-10-12
        • 2013-03-28
        • 2011-08-27
        • 2017-09-25
        • 2020-11-13
        • 1970-01-01
        • 2014-09-22
        • 2015-06-22
        • 2020-11-06
        相关资源
        最近更新 更多