在java中的字符串中追加值

时间:2015-03-19 12:54:40

标签: java string string-formatting

我有一个REST API测试套件,其中重复使用某些URI。因此,我创建了一个具有public static final成员的单独类。类似的东西:

  public class RestURI {
        public RestURI(){}
        public static final String getAllShipsURI = "/ship/manager/ships";
        public static final String getAllPortsURI = "/port/manager/ports";
    }

但是,有没有办法处理这样的URI:

/infrastructure/ships/docked/" + shipId + "/capacity

我正在寻找一种方法,以便我可以在RestURI类中声明上面的URL,并在我使用它们时仍然在测试中指定值。

3 个答案:

答案 0 :(得分:3)

您可以使用常量格式,而不是String并使用静态getter:

public static String getShipUri(int shipId) {
    return String.format("/infrastructure/ships/docked/%d/capacity", shipId);
}

答案 1 :(得分:1)

您可以使用String.format。像这样:

public class RestURI {
    public RestURI(){}
    public xxx() {
       int shipId = 219001000;
       ... String.format(dockedShipURIFormat, shipId) ...;
    }
    public static final String dockedShipURIFormat = "/infrastructure/ships/docked/%d/capacity";
}

答案 2 :(得分:0)

我曾多次使用ANTLR StringTemplate来解决这个问题。在模板中使用内联宏解析和一点if..else逻辑的能力非常强大,并且它保持了良好的可读性。