Is there a best way to parse the following string in java?

Viewed 70

I am developing an Android application but I am having difficulty to split this string:

FCCCYNYX (A0168 / 21 NOTAMN Q) FCCC / QWULW / I / BO / AW / 000/999 / 0346N00843E 005 A) FGSL B) 2021-02-03 08:00:00 C) 2021-02-05 11:00: 00 D) FEB 03 TIL 05 0800-1100 E) UA FLIGHT WILL TAKE PLACE RADUIS 10KM FROM RADIAL 240DEG TO 82DEG FROM MBO VOR F) GND G) FL030)

Under the form:

FCCCYNYX
A)---
B)---
C)---
D)---
E)---
F)---
G)---

Thanks

1 Answers

Using String#split and String#replaceAll, we can try:

String input = "FCCCYNYX (A0168 / 21 NOTAMN Q) FCCC / QWULW / I / BO / AW / 000/999 / 0346N00843E 005 A) FGSL B) 2021-02-03 08:00:00 C) 2021-02-05 11:00: 00 D) FEB 03 TIL 05 0800-1100 E) UA FLIGHT WILL TAKE PLACE RADUIS 10KM FROM RADIAL 240DEG TO 82DEG FROM MBO VOR F) GND G) FL030)";
String[] parts = input.split("\\s+(?=\\b[A-G]\\))");
parts[0] = parts[0].replaceAll("\\s+.*", "");
Arrays.stream(parts).forEach(System.out::println);

This prints:

FCCCYNYX
A) FGSL
B) 2021-02-03 08:00:00
C) 2021-02-05 11:00: 00
D) FEB 03 TIL 05 0800-1100
E) UA FLIGHT WILL TAKE PLACE RADUIS 10KM FROM RADIAL 240DEG TO 82DEG FROM MBO VOR
F) GND
G) FL030)
Related