Ti ringrazio però vorrei capire perchè quella condizione non funziona come dovrebbe... hai qualche idea? o_OOriginariamente inviato da andbin
Che non solo è molto più corto ma ha un grande vantaggio: funziona per un qualunque numeri di digit!!!codice:public class CombinazioniTastiera { private static 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); } }
Potrei mettere String number = "33423983245645735"; e funziona lo stesso.