daste.p
11-06-2008, 10:39
Ciao ragazzi ho 1problema con il riempimento di 1matrice di stringhe.
Vi mando il codice qui di seguito..le ho provate tutte ma non funziona uffa!
int righe=7;
int colonne=10;
String [][] nome;
String s="7W3W$3X2d2X2 3d1W$1W1X1W3 2W1d1W$1W1 3W1 2W2 $1P1o1W3d1W1p1 1W$1W3 2W1r1 1P1W$3W1c6W$";
String[] splittare = s.split(\\$);// crea 1array di stringhe con i pezzi divisi da $
if (splittare.length != righe)
throw new Exception("Le righe di configurazione del campo di gioco sono in numero diverso rispetto alle righe del campo di gioco)");
//////////////___FIN QUI è OK____///////////////
String conf;
int num_contigue;
nome=new String[righe][colonne];
for (int a = 0; a < splittare.length; a++) {
int tot_col = 0;
conf = splittare[a];
for (int b = 0; b < conf.length();b=+2)
{
num_contigue=Integer.parseInt(String.valueOf(conf.charAt(b)));
char tipo_elemento = conf.charAt(b+1);
for (int t = 0; t < num_contigue ; t++) {
switch (tipo_elemento) {
case 'X': nome[a][tot_col]="ixx";break;
case 'r': nome[a][tot_col]="bi";break;
case 'p': nome[a][tot_col]="lettera c";break;
case 'c': nome[a][tot_col]="ci";break;
case 'o': nome[a][tot_col]="oo";break;
case 'P': nome[a][tot_col]="pi grande";break;
case 'd': nome[a][tot_col]="di";break;
case 'W': nome[a][tot_col]="vudoppia grande";break;
case ' ': nome[a][tot_col]="spazio";break;
default: throw new Exception("Errore");
}
tot_col++;
}
}
}
for(int a=0;a<rows;a++)
{
for(int b=0;b<columns;b++)
System.out.println(nome[a][b]); // stampare array
}
}
Il mio problema è che mi rida sempre l'eccezione ArrayIndexOutOfBoundsException e dice che sfora la dimensione dell'array...l'ho rivisto 1miliardo d volte ma non trovo il problema....grazie a tutti siete grandi come al solito
Vi mando il codice qui di seguito..le ho provate tutte ma non funziona uffa!
int righe=7;
int colonne=10;
String [][] nome;
String s="7W3W$3X2d2X2 3d1W$1W1X1W3 2W1d1W$1W1 3W1 2W2 $1P1o1W3d1W1p1 1W$1W3 2W1r1 1P1W$3W1c6W$";
String[] splittare = s.split(\\$);// crea 1array di stringhe con i pezzi divisi da $
if (splittare.length != righe)
throw new Exception("Le righe di configurazione del campo di gioco sono in numero diverso rispetto alle righe del campo di gioco)");
//////////////___FIN QUI è OK____///////////////
String conf;
int num_contigue;
nome=new String[righe][colonne];
for (int a = 0; a < splittare.length; a++) {
int tot_col = 0;
conf = splittare[a];
for (int b = 0; b < conf.length();b=+2)
{
num_contigue=Integer.parseInt(String.valueOf(conf.charAt(b)));
char tipo_elemento = conf.charAt(b+1);
for (int t = 0; t < num_contigue ; t++) {
switch (tipo_elemento) {
case 'X': nome[a][tot_col]="ixx";break;
case 'r': nome[a][tot_col]="bi";break;
case 'p': nome[a][tot_col]="lettera c";break;
case 'c': nome[a][tot_col]="ci";break;
case 'o': nome[a][tot_col]="oo";break;
case 'P': nome[a][tot_col]="pi grande";break;
case 'd': nome[a][tot_col]="di";break;
case 'W': nome[a][tot_col]="vudoppia grande";break;
case ' ': nome[a][tot_col]="spazio";break;
default: throw new Exception("Errore");
}
tot_col++;
}
}
}
for(int a=0;a<rows;a++)
{
for(int b=0;b<columns;b++)
System.out.println(nome[a][b]); // stampare array
}
}
Il mio problema è che mi rida sempre l'eccezione ArrayIndexOutOfBoundsException e dice che sfora la dimensione dell'array...l'ho rivisto 1miliardo d volte ma non trovo il problema....grazie a tutti siete grandi come al solito