2016-08-03 8 views
-3

Ich versuche, ein Programm, das die Top 20 häufig Wörter in einer Textdatei in Java drucken, und ich habe 3 Klassen, aber ich weiß nicht, warum kann es nicht kompilieren Hilf mir bitte. Ich zeige Ihnen die Baumklassen nur eine Idee haben:Warum mein Programm die TXT-Datei nicht erkennen

1) public class Kunde {

public static void main(String[] args) { 
    Map<String, Integer> frequencies = new TreeMap<String, Integer>(); 

    while(file.hasNext()){//Este lazo lee las palabras y crea el TreeMap 
     String word= clean(doc.next()); 
     Integer count = frequencies.get(word); 
     if(count==null){ 
      count = 1;} 
     else { 
      count = count + 1; 
     } 
    } 
    Object[] Claves = frequencies.keySet().toArray(); 
    Object[] Valores = frequencies.values().toArray(); 
    Par[] par = new Par[frequencies.size()]; 

    for (int i=0;i<frequencies.size();i++){ 
     Par p = new Par(Claves[i].toString(),(int) Valores[i]); 
     par[i]=p; 
    } 
    Arrays.sort(par); 
    showResult(par); 
} 
public static void showResult(Par[] arreglo){ 
    System.out.println("The 20 most frequently words are "); 
    for(int i= 0; i<=19; i++){ 
     System.out.print("Word "+ arreglo[i].Clave + " in " + arreglo[i].Valor + " times."); 
    } 
} 

} 2) public class Par Vergleichbare { String Clave implementiert; int Valor; öffentliche int Länge;

public Par(String clave, int valor){ 
    this.Clave = clave; 
    this.Valor = valor; 
} 

public int compareTo(Par p) { 
     if(this.Valor<p.Valor){ 
      return 1; 
     } 
     else if(this.Valor==p.Valor){ 
      return 0; 
     } 
     else{ 
      return -1; 
     }   
} 

} 3) public class Processtext {

public void reader(Path r){ 
    String name = clean(file.getName()); 
     if(file.getName().equals(name + ".txt" || file.getName().equals(name + ".doc"))){ 
      try (Scanner sc = new Scanner(r)){ 
       String doc = ""; 
       while(sc.hasNextLine()){ 
        String linea = (sc.nextLine()); 
        doc = doc.concat(linea + "\n"); 
       } 
       sc.close(); 
      } 
     } 
} 

public static String clean(String s){ 
    String r = ""; 
    for (int i=0;i<s.length();i++){ 
     char c = s.charAt(i); 
     if (Character.isLetter(c)){ 
     r = r + c; 
     } 
    } 
    return r.toLowerCase(); 
} 

}

+0

Ein todos los votantes. Sí, ya sé que está en ingles. No vuelvan a cerrar la pregunta. Si la abrí es auf un muy buen motivo. –

+1

Warum können Sie es nicht kompilieren? Was sind die Fehlermeldungen? –

+0

abstimmen, um diese Frage zu schließen – haifzhan

Antwort

0

Wenn dies den gesamten Code, die Sie haben, könnte das Problem sein, dass Ihre Haupt-Methode erstellt nie eine Variable namens "doc" oder "file", aber Sie verwenden sie beide am Anfang der Hauptmethode des Clients.

Es wäre hilfreicher, wenn Sie den Kompilierzeitfehler teilen könnten, obwohl ich nicht sicher sein kann, dass dies Ihr Problem ist.

Verwandte Themen