codice:
public class CombinazioniTastiera
{
private static final String[] alphabet = { "", "", "ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ" };
public static void main (String[] args)
{
String number = "3342398";
int len = number.length ();
int[] digits = new int[len];
String[] letters = new String[len];
for (int i = 0; i < len; i++)
{
digits[i] = Integer.parseInt (String.valueOf (number.charAt (i)));
letters[i] = alphabet[digits[i]];
}
int[] indexes = new int[len];
int carry;
do {
for (int i = 0; i < len; i++)
System.out.print (letters[i].charAt (indexes[i]));
System.out.println ();
carry = 1;
for (int i = 0; i < len; i++)
{
if (letters[i].length () > 0)
{
indexes[i] += carry;
if (indexes[i] >= letters[i].length ())
indexes[i] = 0;
else
carry = 0;
}
}
} while (carry == 0);
}
}
Che non solo è molto più corto ma ha un grande vantaggio: funziona per un qualunque numeri di digit!!!
Potrei mettere String number = "33423983245645735"; e funziona lo stesso.