Originariamente inviato da kucchiaio84
ho un database con memorizzati dei titoli di films. Alcuni però hanno ", The" memorizzato alla fine.
Quindi eliminare tutte le cose fra parentesi (date e stringhe), e dove presente eliminare il ", The".
Io direi innanzitutto di eliminare tutte le (....) che stanno al fondo (anche più di una, come nel tuo terzo esempio) e che hanno davanti uno (o più) spazi.
In sostanza rimuovere:
codice:
qualunque-whitespace '(' qualunque-cosa ')'
\___________________________________________/
tutto questo ripetibile N volte
Quindi si potrebbe fare:
codice:
String s2 = s1.replaceAll("(\\s+\\(.*?\\))+$", "");
Sembra complicata ma non è molto difficile (nota, ora riporto i caratteri nella stringa):
\s+ = uno o più whitespace
\( = proprio la parentesi (
.*? = qualunque cosa
\) = proprio la parentesi )
tutto racchiuso in ( .... )+ cioè si può ripetere una o più volte. Alla fine $ per indicare la fine dell'input (in modo che catturi solo al fondo).
Quindi ti resterebbe ad esempio "Blue Angel, The" e puoi usare endsWith() di String per vedere se termina con ", The". Se così fai un substring.