Sì ma il punto dubbio è quel �
Se nel file rappresenta ° (simbolo dei gradi) e tu leggi con charset inappropriato e il char che ottieni nel String è malformato, usando un pattern completo potrebbe non corrispondere (oltre a non essere una bella cosa, comunque).
Se una stringa è es. 59°19'45" il pattern lo farei "(\\d+)\u00B0(\\d+)'(\\d+)\""
(\u00B0 è l'escape unicode del simbolo dei gradi, giusto solo per non mettere caratteri speciali nel sorgente).
Quindi matches() sul Matcher e se true, allora prendo group(1), group(2), group(3)
Se matches() dà false, l'input è malformato (=errore).
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet