• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyrażenia regularne

0 głosów
534 wizyt
pytanie zadane 28 stycznia 2016 w Java przez Dudek Początkujący (370 p.)
edycja 28 stycznia 2016 przez Dudek

Witajcie, 
Jestem nowy na forum i bardzo potrzebuję Waszej pomocy. Nie bardzo rozumiem Wyrażenia regularne, a chciałbym je pojąć. Potrzebuję wiedzy do rozwiązania zadania typu:

Dana jest zmienna zawierająca tekst: Jadwiga Andegaweńska (ur. między 3 października 1373, a 18 lutego 1374 w Budzie, zm. 17 lipca 1399 w Krakowie).

 Jak napisać program wykorzystujący wyrażenia regularne do obliczenia liczby wystąpień:

• słów (oddzielonych znakami białymi i przystankowymi),

• dat (dzień miesiąc rok),

• lat,

• słów rozpoczynających się wielką literą,

• wystąpień kropek.

Z góry dziękuję za odpowiedzi :)

1 odpowiedź

0 głosów
odpowiedź 28 stycznia 2016 przez Dudek Początkujący (370 p.)

Udało mi się do tej pory coś takiego stworzyć. Czy jest to poprawne? Chodzi mi o to czy jest to dobra praktyka? Możecie mi pomóc jak zrobić datę tym sposobem w momencie, kiedy nie mam dd-mm-yyyy. Jak zapisać kiedy mam jak powyżej 3 października 1373? 

 


import java.util.regex.Matcher;
import java.util.regex.Pattern;

class Zadania15 {
	public static void main(String[] args) {

		String tekst = "Jadwiga Andegaweńska (ur. między 3 października 1373, a 18 lutego 1374 w Budzie, zm. 17 lipca 1399 w Krakowie).";
		

		        Pattern p = Pattern.compile("([\\W\\s]+)");
		        Matcher m = p.matcher(tekst);
		        int iloscSlow = 0;
		        while (m.find()) {
		            iloscSlow++;
		        }
		        System.out.println("Ilosc słow: " + iloscSlow);
		    
	
				Pattern p2 = Pattern.compile("[.]+");
				Matcher m2 = p2.matcher(tekst);
				int iloscKropek = 0;
				while (m2.find()){
					iloscKropek++;
				}
				System.out.println("Ilosc kropek: " + iloscKropek);
	
				
				Pattern p3 = Pattern.compile("\\W[A-Z]+");
				Matcher m3 = p3.matcher(tekst);
				int iloscWielkichLiter = 0;
				while (m3.find()){
					iloscWielkichLiter++;
				}
				System.out.println("Ilosc Wyrazów zaczynajacych się wielką literą: " + iloscWielkichLiter);
	
				
				Pattern p4 = Pattern.compile("[0-9]{4}");
				Matcher m4 = p4.matcher(tekst);
				int iloscLat = 0;
				while (m4.find()){
					iloscLat++;
				}
				System.out.println("ilość podanych lat : " + iloscLat);
	}
	
	

}


 

Podobne pytania

0 głosów
1 odpowiedź 755 wizyt
pytanie zadane 15 października 2020 w Java przez amtrax Dyskutant (9,630 p.)
0 głosów
2 odpowiedzi 475 wizyt
pytanie zadane 24 kwietnia 2017 w Java przez Swierzak Użytkownik (690 p.)
0 głosów
0 odpowiedzi 1,001 wizyt
pytanie zadane 12 listopada 2016 w Java przez chris Gaduła (3,680 p.)

93,503 zapytań

142,441 odpowiedzi

322,790 komentarzy

62,941 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...