-
Notifications
You must be signed in to change notification settings - Fork 0
/
Application.java
102 lines (76 loc) · 2.86 KB
/
Application.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import java.io.*;
import java.util.*;
public class Application{
public static void main(String[] args)throws IOException {
System.out.println("Scegliere quale struttura dati utilizzare");
int v;
System.out.println("-0 Hashtable");
System.out.println("-1 Treemap");
Scanner si = new Scanner(System.in);
System.out.println("Inserire 0 oppure 1 per selezionare struttura dati desiderata");
v=si.nextInt();
DataCounter<String,Integer> conta;
if(v== 0 ){
conta = new HashDataCounter<String,Integer>();
}else{
conta = new TreeDataCounter<String,Integer>();
}
//HashDataCounter<String> conta= new HashDataCounter<String>();
int wordscount=0;
// variabile conta parole
int charactercount=0;
// variabile conta caratteri esclusi spazi
int charactercount2=0;
// variabile conta caratteri inclusi spazi
// aquisisco in input il file di cui analizzo il testo
FileReader f;
f=new FileReader("prova1.txt");
Scanner sc = new Scanner(f);
String temp;
String prima[];
while(sc.hasNextLine()) {
temp=sc.nextLine();
prima=temp.split(" ");
// separa tutte le stringhe ogni qualvolta incontra " "
Utils.conta(prima);
// conta i caratteri di ogni stringa di prima
charactercount=charactercount+Utils.getChar();
charactercount2=charactercount2+Utils.getChar2();
// aggiorna i conteggi dei caratteri inclusi spazi
// ed esclusi spazi
temp=temp.replaceAll("'"," ");
temp=temp.replaceAll("<"," ");
// rimpiazza tutti gli apostrofi e simboli minori con " "
temp=temp.replaceAll("[\\p{Punct}]","");
// rimpiazza tutta la punteggiatura restante con ""
prima=temp.split(" ");
// separa tutte le stringhe ogni qualvolta incontra " "
for(int i=0;i<prima.length;i++){
prima[i]=prima[i].toLowerCase();
// trasformo ogni lettera maiuscola in minuscola
conta.put(prima[i]);
// inserisco stringa in HashDataCounter<String,Integer>
}
wordscount+=prima.length;
// continuo conteggio parole
}
charactercount2--;
// decremento conteggio caratteri con spazi per eliminare
// il conteggio dello spazio finale
System.out.println("Number of characters (including spaces) "+charactercount2);
System.out.println("Number of characters (without spaces) "+charactercount);
System.out.println("Number of words "+wordscount);
// stampo le variabili interessate
int c=0;
Iterator<String> itr = conta.getIterator();
// ciclo che scorre iteratore per stampare tabella
System.out.format("%-6s%3s%-30s%3s%-10s","Indice"," - ","Parola"," - ","Occorrenza");
System.out.println();
while(itr.hasNext()!=false){
c++;
String curr=itr.next();
System.out.format("%-6s%3s%-30s%3s%-10s",c," - ",curr," - ",conta.getCount(curr));
System.out.println();
}
}
}