Pomocy wyszukiwanie wypisywanie + statystyka

0

Prosze o pomoc w napisaniu programu wyswietlajacego z pliku wszystkie wyrazy i ile razy dany wyraz wystapil w tekscie.

 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pliczek;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

/**
 *
 * @author duugas
 */
public class Pliczek {

    
    public static void main(String[] args) throws Exception {
     try {
            System.out.println("Podaj ścieżkę dostępu do pliku: ");
            BufferedReader linia = new BufferedReader(new InputStreamReader(System.in));
            String sciezka = linia.readLine();
            FileReader plik = new FileReader(sciezka);
            Scanner scan = new Scanner(linia);
            System.out.println(linia);
                 
            System.out.println("ilosc wyrazow: " + IloscWyrazow(plik));
            
            plik.close();
            linia.close();

        } catch (FileNotFoundException e) {
            System.out.println("nie ma pliku");
            System.exit(1);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        
     
       
        
    }

   
    
   
    public static int IloscWyrazow(FileReader r) {
        Scanner skaner = new Scanner(r);
        int count = 0;
        while (skaner.hasNext()) {
            skaner.next();
            count++;
        }
        
        skaner.close();
        return count;
         
    }
    
    
   

    
    
     
}
0

Skorzystaj z mapy Hashmap<String,Integer>.

0

System.out.println("ilosc wystapien: " +Wystapienia(plik,"wyraz"));

I podobnie jak twoje zliczanie wyrazow :D

public static int Wystopienia(FileReader r, String wyraz) {
Scanner skaner = new Scanner(r);
int count = 0;
while (skaner.hasNext()) {
if(wyraz.equals(skaner.next()) count++;
}

    skaner.close();
    return count;

}
0

Coś takiego:

        HashMap<String,Integer> wyrazy = new HashMap<String,Integer>();
        while (skaner.hasNext()) {
            String s = skaner.next();
            if(wyrazy.containsKey(s))
            {
                  wyrazy.put(s,wyrazy.get(s)+1);
            }
            else
            {
                  wyrazy.put(s,1);
            }
        }
 
        skaner.close();
 
    }

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