Android String.format抛出UnknownFormatConversionException

时间:2014-01-31 02:01:45

标签: java android android-resources

我有以下字符串资源:

<string formatted="false" name="residential_search_url">https://api.trademe.co.nz/v1/Search/Property/Residential.json?latitude_min=%f%26latitude_max=%f%26longitude_min=%f%26longitude_max=%f</string>

这在Activity中使用:

String residentialUrl = task.getSearchUrl(_map.getProjection().getVisibleRegion().latLngBounds,getString(R.string.residential_search_url));

该方法定义为:

public String getSearchUrl(LatLngBounds bounds, String baseUrl){
        return String.format(baseUrl,
                bounds.southwest.latitude,
                bounds.northeast.latitude,
                bounds.southwest.longitude,
                bounds.northeast.longitude);
    }

我一直在:

java.util.UnknownFormatConversionException: Conversion = l''

我也尝试使用%s代替%f而没有任何区别。

2 个答案:

答案 0 :(得分:0)

问题是你使用%26作为URL的一部分,而不是%f格式说明符。 %26不是有效的格式规范,因此您会收到错误消息。你需要告诉格式例程你实际上想要一个文字%字符。试试%%。

http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax

答案 1 :(得分:0)

我的解决方法是使用&amp;来逃避&符号,而不是%26