eligigia
15-12-2010, 13:50
Ho un piccolo problema...non riesco a procedere nell'esecuzione di un esercitazione!!!
data una frase devo memorizzare le parole all'interno di un array...e fin qui ci sono
dopo di che ad ogni parola dovrei assegnare una corrispondente numerica
es sotto la panca la capra canta sopra la panca la capra crepa
1 2 3 2 4 5 6 2 3 2 4 7
ho provato a risolverli in questo modo, ma nn ho il risultato corretto!
import prog.io.*;
import java.util.*;
public class Dizionario{
public static void main(String[]args){
ConsoleInputManager in=new ConsoleInputManager();
String s=in.readLine();
StringTokenizer stk=new StringTokenizer(s," ");
String[]parole=new String[s.length()];
int[]num=new int[parole.length];
int x=1;
while(stk.hasMoreTokens()){
//metto tutte le parole minuscole x il confronto successivo
String p=(stk.nextToken()).toLowerCase();
for(int i=0; i<parole.length; i++){
//se la posizione nell'array è vuota inserisco la parola e metto il corrispondente numerico a x (che parte da 1)
if(parole[i]==null){
parole[i]=p;
num[i]=x;
x++;
break;
}else{
//nel caso sia uguale la parola la vado ad inserire nella nuova posizione dell'array di stringhe e in quello numerico dovrei inserire la corrispondenza numerica della prima volta che è comparsa la parola!!!
Credo che l'errore sia in questo pezzo!!!
if(p.equals(parole[i])){
parole[i]=p;
num[i]=i;
break;
}
}
}
}
for(int i=0; i<parole.length; i++){
if(parole[i]!=null)
System.out.println(parole[i]+" "+num[i]);
}
}
}
data una frase devo memorizzare le parole all'interno di un array...e fin qui ci sono
dopo di che ad ogni parola dovrei assegnare una corrispondente numerica
es sotto la panca la capra canta sopra la panca la capra crepa
1 2 3 2 4 5 6 2 3 2 4 7
ho provato a risolverli in questo modo, ma nn ho il risultato corretto!
import prog.io.*;
import java.util.*;
public class Dizionario{
public static void main(String[]args){
ConsoleInputManager in=new ConsoleInputManager();
String s=in.readLine();
StringTokenizer stk=new StringTokenizer(s," ");
String[]parole=new String[s.length()];
int[]num=new int[parole.length];
int x=1;
while(stk.hasMoreTokens()){
//metto tutte le parole minuscole x il confronto successivo
String p=(stk.nextToken()).toLowerCase();
for(int i=0; i<parole.length; i++){
//se la posizione nell'array è vuota inserisco la parola e metto il corrispondente numerico a x (che parte da 1)
if(parole[i]==null){
parole[i]=p;
num[i]=x;
x++;
break;
}else{
//nel caso sia uguale la parola la vado ad inserire nella nuova posizione dell'array di stringhe e in quello numerico dovrei inserire la corrispondenza numerica della prima volta che è comparsa la parola!!!
Credo che l'errore sia in questo pezzo!!!
if(p.equals(parole[i])){
parole[i]=p;
num[i]=i;
break;
}
}
}
}
for(int i=0; i<parole.length; i++){
if(parole[i]!=null)
System.out.println(parole[i]+" "+num[i]);
}
}
}