簡體   English   中英

JAVA:使用計數器格式化字符串

[英]JAVA: format strings with a counter

我想基於先前定義的模板構建一個URL:

public class Main {
public static void main(String[] args) {
    String unformattedUrl = "http://myweb.com?param[%1$d]=[%2$s]&param[%1$d]=[%3$s]&param[%1$d]=[%4$s]";
    System.out.println(String.format(unformattedUrl, 1, "first", "second", "third"));
}

}

我想在格式化后獲取下一個字符串:

http://myweb.com?param[1]=[first]&param[2]=[second]&param[3]=[third]

問題是我在運行系統中獲取了參數,並且事先不知道它們的數量。

我可以將參數數組傳遞給String.format(...)函數,但是我不知道如何添加計數器。

是否可以使它沒有循環,手動替換或串聯?

不要嘗試直接使用String.format來執行此操作:遍歷參數,並將其附加到StringBuilder

StringBuilder sb = new StringBuilder("http://myweb.com?");
for (int i = 0; i < params.length; ++i) {
  if (i != 0) sb.append("&");
  sb.append("param");
  sb.append(i + 1);
  sb.append("=");
  sb.append(escape(params[i]));
}
String url = sb.toString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM