#programowanie #java
Mam stringa "AAA BBB CCCC DDD sa dasd sad sadas sad sad asd dasd". Jak widać początęk składa się z wyrazów tylko z wielkich liter. Niestety liczba wyrazów z wielkimi literami nie jest znana czasem jest ich 2 czasem 5. Chciałbym wyciągnąc tego stringa który składa się z wielkich liter czyli AAA BBB CCCC DDD.
Na ten moment wymyśliłem, żeby wrzucić każdy wyraz do tablicy, później zrobić pętlę i sprawdzać każdy wyraz wyrażeniem regularnym i jeśli trafię na wyraz nie zawierający tylko wielkich liter przerywam pętlę. Jest jakiś łatwiejszy sposób na to?
Mam stringa "AAA BBB CCCC DDD sa dasd sad sadas sad sad asd dasd". Jak widać początęk składa się z wyrazów tylko z wielkich liter. Niestety liczba wyrazów z wielkimi literami nie jest znana czasem jest ich 2 czasem 5. Chciałbym wyciągnąc tego stringa który składa się z wielkich liter czyli AAA BBB CCCC DDD.
Na ten moment wymyśliłem, żeby wrzucić każdy wyraz do tablicy, później zrobić pętlę i sprawdzać każdy wyraz wyrażeniem regularnym i jeśli trafię na wyraz nie zawierający tylko wielkich liter przerywam pętlę. Jest jakiś łatwiejszy sposób na to?
- Najlepsze
- Wszystkie komentarze







"( *[A-Z]+)*"złapie ci dokładnie to, co chcesz."( ?[0-9A-Z]+)*"i będzie dobrze. Spację umieściłem na początku, żeby nie łapała się ta z końca. Jeżeli spacji może być kilka, zamień?na*.https://regex101.com/r/kS8rB5/2
Fakt zapomniałem o spacji, dzięki wielki ! :)
String[] ar = title.split(" ");StringBuilder strb = new StringBuilder();
for(String str:
String mydata = "11AAAAAA IMAGIS AAASA test test test SA sdas KDSA";Pattern pattern = Pattern.compile("([0-9A-Z]+)*");
Matcher matcher = pattern.matcher(mydata);
wtedy będzie lapac wszystkie białe znaki, a regex będzie bardziej explicit