我使用foursquare API,为了搜索一些我必须作为参数传递纬度和经度的字符串的地方:37.963790,23.683090
。如果我愿意,我还想为纬度和经度添加一些值。在尝试使用双打和bigDecimals但没有成功之后,我尝试了:
Long lat1 = Long.valueOf("37");
Long lat2 = Long.valueOf("963790");
Long long1 = Long.valueOf("23");
Long long2 = Long.valueOf("683090");
StringBuilder sb = new StringBuilder();
sb.append(lat1);
sb.append(".");
sb.append(lat2);
sb.append(",");
sb.append(long1);
sb.append(".");
sb.append(long2);
String ll = sb.toString();
我已经尝试了所有这些长片作为字符串sb.append(lat1.toString())
。
在每种情况下我得到的字符串似乎是我想要的,但结果不是。我没有收到错误。如果未正确设置此参数,则会出现此错误:
Error occured:
[0m[0m13:25:34,463 INFO [stdout] (http-/0.0.0.0:8080-1) code: 400
[0m[0m13:25:34,463 INFO [stdout] (http-/0.0.0.0:8080-1) type: param_error
[0m[0m13:25:34,463 INFO [stdout] (http-/0.0.0.0:8080-1) detail: ll must be of the form
XX.XX,YY.YY (received java.nio.HeapByteBuffer[pos=0 lim=19 cap=20])
当我尝试添加utf-8时出现此错误:
ByteBuffer a =Charset.forName("UTF-8").encode(sb.toString());
String ll = a.toString();
有什么建议吗?
答案 0 :(得分:1)
为什么不做呢
String iWant = lat1 + "." + lat2 + "," + long1 + "." + long2
如果您想以不同方式格式化数字,请使用NumberFormat类