В приложении под Android получаю данные со спутника в формате NMEA. Пытаюсь эти строки разобрать, но как-то не очень получается.
Пример строки: $GPGSA,A,3,04,11,19,32,01,,,,,,,,8.16,6.83,4.47*0B
Из этой строки мне надо вытащить номера спутников, в этом примере это: 04, 11, 19,32,01. Парсинг делаю следующим образом:
nmea = "$GPGSA,A,3,04,11,19,32,01,,,,,,,,8.16,6.83,4.47*0B";
String[] subs = new String[10];
StringTokenizer st = new StringTokenizer(nmea, ",");
int i=0;
while (st.hasMoreElements()){
Pattern p = Pattern.compile("\\d{2}");
Matcher m = p.matcher(st.nextElement().toString());
if(m.matches()){
subs[i] = st.nextElement().toString();
Log.d(LOG_TAG, "Элемент "+i+": " + subs[i]);
i++;
}
}
В результате в лог мне выводится следующее:
Элемент 0: 11
Элемент 0: 32
Элемент 0: 8.16
Помогите написать правильное выражение.