抱歉标题不清楚,但我什至不知道该怎么称呼它,我会继续解释发生了什么。
我正在使用 Stringbuffer 来构建 URL。它看起来像这样:
http://maps.googleapis.com/maps/api/geocode/json?latlng=49.0516736,8.38891840&sensor=false
在将单元测试中的这个字符串与方法的实际结果进行比较时,我遇到了这种行为。
这是我得到的断言错误:
latlng=49.0516736[,8.38891840]&sensor=false> but was:<...on?latlng=49.0516736[,8.3889184]&sensor=false
重点是在sensor=false之前的字符序列0]&和4]&
如果我在&测试变为绿色之前删除零。
然后创建的字符串如下所示:
latlng=49.0516736,8.3889184&sensor=false
所以......正如预期的那样。这不是问题,0 本身被截断并且测试会失败 - 我已经证明我的代码正在做它应该做的事情(当我删除零时),但我想知道这里发生了什么。
0&必须是某种数组访问或某种转义的指示。我不知道。有人知道是什么导致了这种行为吗?
编辑:
这是我正在使用的代码
StringBuffer s = new StringBuffer( grailsApplication.config.geocodingurl.toString() )
s.append(coordinates.latitude)
s.append(",")
s.append(coordinates.longitude)
s.append("&sensor=false")
return s.toString()