android 上带有方括号的 MissingFormatArgumentException

MissingFormatArgumentException with square brackets on android

我有一个正在尝试格式化的字符串:

String url = "http://api/doSomething.json?params%5Bemail%5D=%s"
String.format(url,email).

想法是它最终看起来像这样:
http://api/doSomething.json?params[email]=aValue;

我目前遇到 MissingFormatArgumentException, Format specifier: 5D 异常。

以前有人遇到过这个问题吗?

String.format() 不喜欢 %5D 占位符 - %5D 必须是 %5d.
参考:http://developer.android.com/reference/java/util/Formatter.html ...如果它是关于占位符的。

无论如何,您似乎只需要方括号。 因此,改变这个

String url = "http://api/doSomething.json?params%5Bemail%5D=%s"

String url = "http://api/doSomething.json?params[email]=%s"

最后我使用 URLEncoder 解决了这个问题。

这个 post 特别有用 -> URL encoding in Android

    String queryPart = String.format(PARAM_STRING,
            email);
    return baseUrl + URLEncoder.encode(queryPart, "utf-8");