Как получить несколько символов в строке Android - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть динамика c Строка типа «Долгота (141.35642453456) Широта (532.892392)», долгота и широта могут изменяться, когда местоположение отличается.

Мой вопрос: Как получить номер долготы и установить это к строковой долготе? и Как получить номер широты и установить его в строковую широту?

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

Для использования c Вы можете просто получить подстроку, используя: -

    String lonlat = "Longitude (141.35642453456) Latitude (532.892392)";
    String longitude = lonlat.substring(lonlat.indexOf("(") + 1, lonlat.indexOf(")"));
    String latitude = lonlat.substring(lonlat.lastIndexOf("(") + 1, lonlat.lastIndexOf(")"));

Или вы можете сделать это более динамично для большего количества значений

    String example = "Longitude (141.35642453456) Latitude (532.892392)";
    Matcher m = Pattern.compile("\\(([^)]+)\\)").matcher(example);
    ArrayList<String> latLonng = new ArrayList<>();
    while (m.find()) {
        System.out.println(m.group(1));
        latLonng.add(m.group(1));
    }
    String longitude = latLonng.get(0);
    String latitude = latLonng.get(1);
1 голос
/ 12 апреля 2020

Это одно простое решение:

    class Scratch {
    public static void main(String[] args) {
        String input = "Longitude (141.35642453456) Latitude (532.892392)";

        String s = input.replaceAll("[^0-9.\\s]", "");
        //  141.35642453456  532.892392
        System.out.println(s);

        String trim = s.trim();
        System.out.println(trim);

        String[] split = trim.split("\\s+");

        String longitude = split[0];
        String latitude = split[1];

        System.out.println(longitude);
        System.out.println(latitude);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...