2015-12-06 3 views
0

Я получаю Json Array с различными объектами и извлекаю их в переменные. Но один из них является немного более сложным для меня: - «запрос»: «Lat -34,88 и Lon 174,76»Извлечение координат из JsonObject в android

Из этого объекта я хотел бы быть в состоянии извлечь широту и долготу. Я знаю, как извлечь строку со стартовым и конечным значением, но проблема, с которой я сталкиваюсь, заключается в том, что длина координат изменяется в зависимости от полученных данных.

В основном мне нужно только извлечь Широта, начиная с «Лат» плюс пробел, заканчивающийся на «и» минус пробел. И снова для долготы, начиная с «Лон» плюс пространство ...

Не могли бы помочь кому-нибудь?

Благодаря

ответ

0

Попробуйте регулярное выражение:

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class Main { 
    public static void main(String[] args) { 
     Pattern pattern = Pattern.compile("Lat ([-0-9.]*) and Lon ([-0-9.]*)"); 
     checkMatch(pattern, "Lat 34.8.2 and Lon -174.2"); 
     checkMatch(pattern, "Lat -34.4 and Lon 174"); 
    } 

    private static void checkMatch(Pattern pattern, String latAndLong) { 
     Matcher matcher = pattern.matcher(latAndLong); 
     System.out.println(matcher.matches()); 
     System.out.println(matcher.group(0)); 
     System.out.println(matcher.group(1)); 
     System.out.println(matcher.group(2)); 
    } 
} 

Выход

true 
Lat 34.8.2 and Lon -174.2 
34.8.2 
-174.2 
true 
Lat -34.4 and Lon 174 
-34.4 
174 
0

Вы можете использовать String.split(regex) разделить строку запроса.

String query = "Lat -34.88 and Lon 174.76"; 
    String[] split = query.split(" "); 
    double lat = Double.parseDouble(split[1]); 
    double lon = Double.parseDouble(split[4]); 
    System.out.printf("Lat: %s. Lon: %s", lat, lon); 

Выход:

Lat: -34.88. Lon: 174.76 
Смежные вопросы