Uczę się samodzielnie javy i mam tutaj takie zadanko do zrobienia:
Pobierz od użytkownika 10 adresów. Stosując wyrażenia regularne dopilnuj, żeby każdy adres miał postać:
ul. NazwaUlicy NumerUlicy KodPocztowy Miasto
NazwaUlicy – wyraz składający się z samych dużych liter
Numer ulicy – liczba z przedziału 10 – 99
KodPocztowy – standardowy kod w formacie xx-xxx
Miasto – jedno z Kraków, Warszawa, Wrocław
Następnie sprawdź, w którym mieście znajduje się najwięcej adresów spośród pobranych.
Mój kod wygląda tak
public class Zad3 {
static String getAdress() {
Scanner sc = new Scanner(System.in);
String adres = "xxx";
int krakow = 0, warszawa = 0, wroclaw = 0;
System.out.println("podaj 3 adresy: ");
for (int i = 0; i < 3; i++) {
adres = sc.nextLine();
if (!(adres.matches("ul\\. [A-Z]+ [1-9][0-9] [0-9]{2}-[0-9]{3} (Kraków|Warszawa|Wrocław)"))) {
System.out.println("Format adresu jest niepoprawny ");
break;
}
}
return adres;
}
public static void main(String[] args) {
System.out.println(getAdress());
}
}
Pobieranie adresu w odpowiednim formacie działa. Tylko nie mam pomysłu jak w elegancji sposób wyznaczyć wpis z miastem, które najczęściej wystąpiło.
No i jeśli to co jest już napisane wymaga jakichś optymalizacji to chętnie przyjmę reprymendy ;)