Wyszukanie frazy w tekscie i zapis do pliku

0

Witam,

Chcę napisać program, który wyszuka zadane słowo lub frazę w tekscie zliczy ilość wystąpień i zapisze wynik do pliku. Praca z plikami działa dobrze jednak mam problem z tym fragmentem kodu:

 while ((line = br.readLine()) != null){
                        int pozycja = line.indexOf(slowo);
                        int wynik = line.indexOf(slowo, pozycja);
                        if(wynik != -1){
                            ilosc++;
                            bw.write(Integer.toString(ilosc));
                        }

gdyż wynikiem działania programu jest pusty plik. Nie wiem czemu, ale warunek się nie spełnia, pomimo tego, że zmienna wynik przyjmuje wartości różne od -1. Czy ktoś ma pomysł co może działać nie tak?

0

Twój kod wymaga by slowo wystąpiło dwa razy w linii.

0

Yhy. Chyba rozumiem.

0

Poprawiłem na coś takiego:

 while ((line = br.readLine()) != null){
                        if ((pozycja = line.indexOf(slowo)) != -1){
                            znaleziony = true;
                            ilosc++;
                            //bw.write(Integer.toString(ilosc));
                            wynik = line.indexOf(slowo, pozycja);
                            while (wynik != -1){
                                ilosc++;
                                //bw.write(Integer.toString(ilosc));
                                //pozycja = wynik;
                                wynik = line.indexOf(slowo, wynik);
                            }
                        }
                    }

Zakomentowane zapisywanie do pliku zrobiłem po pętli wczytującej linie. Jednak chcąc sprawdzić, czy w danym stringu są jeszcze wystąpienia szukanego słowa program się zapętla, ktoś ma pomysł o co chodzi?

1

Szukasz ciągle od tego samego miejsca, więc jak znajdziesz raz, to znajdujesz w nieskończoność.

 wynik = line.indexOf(slowo, wynik + 1);
0

Tak doszedłem do tego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1