Salve a tutti. Ho un problema con un algoritmo, non riesco a capire come funziona... il programma dovrebbe simulare il tastierino di un telefono, dove ad ogni numero da 2 a 9 corrispondono 3 lettere tranne al numero 7 e 9 che ne corrispondono 4. Dato un numero di 7 cifre (da 2 a 9), stampare a video ogni possibile combinazione, ad esempio se prendiamo in considerazione il numero "234" si avrebbe:
ADG
BEH
CFI
ecc...
ho provato a creare una parte del programma in questo modo:
Codice PHP:
import java.util.*;
public class CalcolaParole
{
public static void main(String[] args)
{
String number = "234";
String string = "";
String stringT = "";
char[][] matrice = new char[7][4];
for (byte i = 0; i < number.length(); i++)
{
switch (Byte.valueOf(number.substring(i,i+1)).byteValue())
{
case 2:
matrice[i][0] = 'A';
matrice[i][1] = 'B';
matrice[i][2] = 'C';
break;
case 3:
matrice[i][0] = 'D';
matrice[i][1] = 'E';
matrice[i][2] = 'F';
break;
case 4:
matrice[i][0] = 'G';
matrice[i][1] = 'H';
matrice[i][2] = 'I';
}
}
for (byte i = 0; i < number.length(); i++)
{
for (byte j = 0; j < 3; j++)
{
string = "";
stringT = "";
for (int x = 0; x < 3; x++)
{
if (x != i)
{
stringT += matrice[x][j];
}
}
string += matrice[i][j] + stringT;
System.out.printf("%s\n",string);
}
}
}
}
Ovviamente il codice è errato (oltre che incompleto), e non riesco ad andare avanti... c'è qualcuno che può chiarirmi le idee? ^^