import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Contador {
	public static void main(String[] args) {
		Contador miContador = new Contador(args);
	}
	public  Contador(String[] args) {
		  ArrayList<String> palabras = new ArrayList<String>();
		  String temp[];
		  String archivoBuscado = args[0];
		  String buscada = args[1];
        //File to numbers
        Charset charset = Charset.forName("US-ASCII");
        Path file = new File("../"+archivoBuscado).toPath();
        try (BufferedReader reader = Files.newBufferedReader(file, charset)) {
            String line = null;
            while ((line = reader.readLine()) != null) {
            	temp = null;
            	temp = line.split("[\\ \\.\\, \\¿\\¡]");
            	for (String str: temp){
            		palabras.add(str);
            	}
            }
            System.out.println("Son "+palabras.size()+" palabras");

       		double t1 = System.nanoTime();
            int coincidencia = contar(palabras,buscada,0);

	        double t2 = System.nanoTime();        
	        double ns =(t2-t1);
	        System.out.print("\rLa duración fue de: " + (ns/1000000000) + "s");


            System.out.println("\n   "+coincidencia+" palabras coincidieron");
        } catch (IOException x) {
            System.out.println(x);
        }
	}
	// public contarEnHilos(ArrayList<String> palabras,int hilos){
	// 	int cuantosCadaUno = palabras.size/hilos;
	// 	int primero=0;
	// 	for(int c =0; c<hilos;c++){

	// 	}
		
	// }
	public int contar(ArrayList<String> palabras,String buscada,int contador){
		while(palabras.size()!=0){
			String tempo = palabras.get(0);
			if(tempo.equals(buscada)){
				contador+=1;
				System.out.print("\r"+contador);
			}
				palabras.remove(0);
				
		}
		return contador;
	}
	
}
