public static void main(String[] args) { String doPrzeszukania = "Ala ma kota i ma 80 lat"; boolean wynik = doPrzeszukania.matches("\s{1}\d{1,3}"); System.out.println(wynik); } Dlaczego wywala mi false skoro string doPrzeszukania zawiera " 80"?
@wiorekogorek: To co napisałeś to: \s{1} - dokładnie jedna spacja \d{1,3} - minimum jedna, maksimum trzy cyfry
Czyli matches() zwróci Ci true dla wszystkiego, co ma na początku spację, a zaraz po niej występuje od jednej do trzech cyfr. Jeżeli string będzie zawierać cokolwiek co nie jest cyfrą lub spacją, to zwróci false, bo w tym regexie, który podałeś, nie ma mowy o jakichkolwiek innych
@PupuPanPanda: już do tego doszedłem, ale łap dużego plusa za wyjaśnienie. Na pewno wrócę do twojego wpisu za tydzień jak już zapomnę o wszystkich regexach
public static void main(String[] args) {String doPrzeszukania = "Ala ma kota i ma 80 lat";
boolean wynik = doPrzeszukania.matches("\s{1}\d{1,3}");
System.out.println(wynik);
}
Dlaczego wywala mi false skoro string doPrzeszukania zawiera " 80"?
#java #programowanie #naukaprogramowania
\s{1} - dokładnie jedna spacja
\d{1,3} - minimum jedna, maksimum trzy cyfry
Czyli matches() zwróci Ci true dla wszystkiego, co ma na początku spację, a zaraz po niej występuje od jednej do trzech cyfr. Jeżeli string będzie zawierać cokolwiek co nie jest cyfrą lub spacją, to zwróci false, bo w tym regexie, który podałeś, nie ma mowy o jakichkolwiek innych