Java:解析字符串

Java:解析字符串,java,parsing,Java,Parsing,我有一系列字符串,每种格式: “{3.242,87611},{5.658,7.3731},{5.547,8.7631}……” 花括号中的每对数字代表一个纬度/经度点(每个数字都是双精度的) 我想解析字符串,以便字符串中的每个点都表示为一个单独的Lat/Lon对象,并存储在点列表中。 我对Java(和解析)相当陌生。我已经看了很多例子,但我仍然对如何开始感到困惑。 如何进行此操作?您可以使用regExp首先获取点数 String str = "{3.242, 87611},{5.658, 7.37

我有一系列字符串,每种格式:

“{3.242,87611},{5.658,7.3731},{5.547,8.7631}……”

花括号中的每对数字代表一个纬度/经度点(每个数字都是双精度的)

我想解析字符串,以便字符串中的每个点都表示为一个单独的Lat/Lon对象,并存储在点列表中。

我对Java(和解析)相当陌生。我已经看了很多例子,但我仍然对如何开始感到困惑。
如何进行此操作?

您可以使用
regExp
首先获取点数

String str = "{3.242, 87611},{5.658, 7.3731}";
Pattern pattern = Pattern.compile("\\{(.*?)\\}");
Matcher match = pattern.matcher(str);

while(match.find()) {
   System.out.println(match.group(1));
}
输出

3.242, 87611
5.658, 7.3731

现在,您可以使用查找两点,并将它们解析为
Double
。注意这里的
(.*)
是一个组,表示任何
字符串

假设您已经在某个变量
str
中有此字符串,您可以将
str
拆分为它的组件号

String[] splitNumbers = str.split("[{}, ]+");
然后遍历该列表,并使用每对数字构造一个坐标对象

Coordinate[] coords = new Coordinate[splitNumbers.length/2];
for(int i=0; i < splitNumbers.length-2;i+=2){
    double longitude = Double.paresDouble(splitNumbers[i]);
    double latitude = Double.paresDoublesplitNUmbers[i+1]);
    coords[i/2] = new Coordinate(longitude,latitude);
 }
坐标[]坐标=新坐标[SplitNumber.length/2];
对于(int i=0;i
第1步)试试看。