package Strings;
import java.util.*;
public class List_all_Possible_Words_From_Phone_Digits {
static Character[][] numberToCharMap;
private static List<String> printWords(int[] numbers,
int len,
int numIndex,
String s)
{
if(len == numIndex)
{
return new ArrayList<>(Collections.singleton(s));
}
List<String> stringList = new ArrayList<>();
for(int i = 0;
i < numberToCharMap[numbers[numIndex]].length; i++)
{
String sCopy =
String.copyValueOf(s.toCharArray());
sCopy = sCopy.concat(
numberToCharMap[numbers[numIndex]][i].toString());
stringList.addAll(printWords(numbers, len,
numIndex + 1,
sCopy));
}
return stringList;
}
private static void printWords(int[] numbers)
{
generateNumberToCharMap();
List<String> stringList =
printWords(numbers, numbers.length, 0, "");
stringList.stream().forEach(System.out :: println);
}
private static void generateNumberToCharMap()
{
numberToCharMap = new Character[10][5];
numberToCharMap[0] = new Character[]{'\0'};
numberToCharMap[1] = new Character[]{'\0'};
numberToCharMap[2] = new Character[]{'a','b','c'};
numberToCharMap[3] = new Character[]{'d','e','f'};
numberToCharMap[4] = new Character[]{'g','h','i'};
numberToCharMap[5] = new Character[]{'j','k','l'};
numberToCharMap[6] = new Character[]{'m','n','o'};
numberToCharMap[7] = new Character[]{'p','q','r','s'};
numberToCharMap[8] = new Character[]{'t','u','v'};
numberToCharMap[9] = new Character[]{'w','x','y','z'};
}
public static void main(String[] args)
{
int number[] = {2, 3, 4};
printWords(number);
}
}