在android上使用方括号的MissingFormatArgumentException

时间:2015-11-27 11:32:41

标签: android json networking string-formatting put

我有这个字符串,我正在尝试格式化:

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例外。

之前有没有人遇到过这个问题?

2 个答案:

答案 0 :(得分:1)

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"

答案 1 :(得分:0)

最后,我能够使用URLEncoder来解决这个问题。

这篇文章特别有用 - > URL encoding in Android

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