Если бы это был мой проект, я бы попытался изменить острый символ (#) на все символы английского алфавита и посмотреть , какой из них подходит лучше всего слово , а затем изменить вывод на буквы .
Пример кода: (изменить ввод букв на имена)
public static void main(String[] args) {
// input o#e tw# thr#e
char[] alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
String[] numbers = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "zero"};
String input = "o#e tw# thr#e";
String[] words = input.split(" ");
for (int i = 0; i < words.length; i++) { // reads one by one the words
for (int j = 0; j < alphabet.length; j++) { checks if the character[j] fits the word
for (int k = 0; k < numbers.length; k++) { // checks if the numbers contain that string
if (numbers[k].equalsIgnoreCase(words[i].replace('#', alphabet[j])))
words[i] = numbers[k];
}
}
}
}