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步)试试看。