Cześć, otrzymałam zadanie, w którym muszę napisać program szukający instrukcji if i słowa "wariant" w pliku "Test.java". Chciałabym Was prosić o pomoc, ponieważ lekko utknęłam.
Stwierdziłam, że na początek zamienię plik na ciąg znaków i potem przy użyciu FileReader i BufferedReader go odczytam i w pętli policzę słowa "wariant". Tylko jak zrobić, żeby czytany był cały tekst, a nie linia po linii? W sensie, żeby liczyło wszystkie słowa, a nie tylko w danej linii. Kod na dole jest testowy, zadanie muszę wykonać trochę inaczej, ale żeby zobaczyć czy coś "działa" napisałam to trochę prowizorycznie.
Dzięki za wszystkie odpowiedzi i mam nadzieję, że jakoś mnie naprowadzicie na rozwiązanie. :)
public class Finder {
public static void main(String[] args) throws IOException {
FileReader fr = null;
String content = new String(Files.readAllBytes(Paths.get("Test.java")));
// OTWIERANIE PLIKU:
try {
String str;
fr = new FileReader("Test.java");
} catch (FileNotFoundException e) {
System.out.println("BŁĄD PRZY OTWIERANIU PLIKU!");
System.exit(1);
}
BufferedReader bfr = new BufferedReader(fr);
// ODCZYT KOLEJNYCH LINII Z PLIKU:
try {
while((content= bfr.readLine()) != null){
String code = content;
Pattern p = Pattern.compile("wariant"); //LICZENIE SŁÓW "WARIANT"
java.util.regex.Matcher m = p.matcher(code);
int count = 0;
while (m.find()) {
count +=1;
System.out.println(count);
}
}
} catch (IOException e) {
System.out.println("BŁĄD ODCZYTU Z PLIKU!");
System.exit(2);
}
// ZAMYKANIE PLIKU
try {
fr.close();
} catch (IOException e) {
System.out.println("BŁĄD PRZY ZAMYKANIU PLIKU!");
System.exit(3);
}
}
}