Java, creare array di StringBuffer

di il
1 risposte

Java, creare array di StringBuffer

Salve a tutti, ho un problema con Java.
Supponiamo di avere un certo alfabeto ordinato, ad esempio l'alfabeto latino con 26 simboli in ordine alfabetico. Io in pratica voglio creare un array di 26^n oggetti di tipo StringBuffer ordinato con l'ordinamento lessicografico che contenga tutte le possibili combinazioni di questi 26 simboli; ho provato a scrivere un programma ma mi solleva l'eccezione java.lang.ArrayIndexOutOfBoundsException.

La classe che si occupa di creare la lista è questa:
public static StringBuffer[] creaTabellaTotale(int n, char[] a) {   
    
 
    	 StringBuffer[] tabella = new StringBuffer[ pow(26, n)];
    	 for(int w =0; w < pow(26, n); w++)
    		 tabella[w] = new StringBuffer("");
    	 
    	 for(int h = 1; h <= n ; h++){
    		for(int u =0; u < pow ( 26, h-1); u++){
    			
    		for (int j = 0; j<26; j++){
    			
    			for( int x =pow(26, n-h+1)*u + pow(26, n-h)*j; x< pow(26, n-h+1)*u + pow(26, n-h)*(j+1); x++)
    				tabella[x] = tabella[x].append(a[j]);
    		}
    			
    		}
    		
    	 }
    	 
    	 return tabella;
     }
Nel codice a[] è l'array che contiene i 26 caratteri dell'alfabeto in ordine alfabetico. La funzione pow() l'ho ridefinita in modo che accetti 2 interi e restituisca un intero. Volevo capire se il problema è in questa classe oppure è scritta bene.
Probabilmente ho fatto confusione con gli indici ma non riesco a trovare l'errore.

1 Risposte

  • Re: Java, creare array di StringBuffer

    Cia0
    l eccezione ti indica che stai cercando di estrarre un valore dall array in una posizione che supera la sua lunghezza.
    per es, se definisci l array da 26 caratter (array[26]) la posizione max sarà array[25].
    per il resto nn ho fatto caso al codice, prima di conviene controllare qsto!!
Devi accedere o registrarti per scrivere nel forum
1 risposte