如果我正在检索类似这样的字符串变量(34872.1297,41551.7292),那么它将是“(34872.1297,41551.7292)”,如何将此字符串变量转换为Point(Geolocation)?
例如,这会设置点值,但我希望检索值
Point point = new Point(34872.1297,41551.7292);
答案 0 :(得分:1)
您正在寻找的是how to split a string,并且有一些很好的例子可以让您仔细阅读。
在您的情况下,这将有效:
String yourString = "(34872.1297,41551.7292)";
// Strip out parentheses and split the string on ","
String[] items = yourString.replaceAll("[()]", "").split("\\s*,\\s*"));
// Now you have a String[] (items) with the values "34872.1297" and "41551.7292"
// Get the x and y values as Floats
Float x = Float.parseFloat(items[0]);
Float y = Float.parseFloat(items[1]);
// Do with them what you like (I think you mean LatLng instead of Point)
LatLng latLng = new LatLng(x, y);
添加空值检查和解析异常等。
答案 1 :(得分:1)
将地理坐标存储为Point对象的问题是Point实际上要求两个值为整数类型。所以你会失去信息。
因此,您可以提取并输入将坐标转换为整数(但丢失信息):
String geo = "(34872.1297,41551.7292)";
// REMOVE BRACKETS, AND WHITE SPACES
geo = geo.replace(")", "");
geo = geo.replace("(", "");
geo = geo.replace(" ", "");
// SEPARATE THE LONGITUDE AND LATITUDE
String[] split = geo.split(",");
// ASSIGN LONGITUDE AND LATITUDE TO POINT AS INTEGERS
Point point = new Point((int) split[0], (int) split[1]);
或者,您可以将它们提取为浮点数,并将它们存储在您选择的其他数据类型中。
String geo = "(34872.1297,41551.7292)";
// REMOVE BRACKETS, AND WHITE SPACES
geo = geo.replace(")", "");
geo = geo.replace("(", "");
geo = geo.replace(" ", "");
// SEPARATE THE LONGITUDE AND LATITUDE
String[] split = geo.split(",");
// ASSIGN LONGITUDE AND LATITUDE TO POINT AS INTEGERS
Float long = (float) split[0];
Float lat = (float) split[1];
已编辑:已将geo.split(“:”)更改为代码中的geo.split(“,”)(感谢Jitesh)