Я хочу, чтобы эта программа сортировала беспорядочные слова в алфавитном порядке, сравнивалась со словарем и соответствовала словарным словам. Я получаю его, чтобы распечатать мелодии в алфавитном порядке, но он не будет печатать словарные слова, даже если у меня есть линия печати.Почему моя печатная линия не работает?
public class i
{
public static void main(String[] args) throws Exception
{
if (args.length < 2) die("No dictionary");
BufferedReader dictionaryFile = new BufferedReader(new FileReader(args[0]));
BufferedReader jumbleFile = new BufferedReader(new FileReader(args[1]));
HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
ArrayList<String> jumbleWords = new ArrayList<String>();
ArrayList<String> dictionaryWords = new ArrayList<String>();
while(dictionaryFile.ready())
{
String dictWord = dictionaryFile.readLine();
dictionaryWords.add(dictWord);
}
while(jumbleFile.ready())
{
String word = jumbleFile.readLine();
//String canWord = toCanonical(word);
jumbleWords.add(word);
map.put(word, new ArrayList<String>());
}
Collections.sort(jumbleWords);
for(String dictionaryWord : dictionaryWords)
{
String canDictWord = toCanonical(dictionaryWord);
if(map.containsValue(canDictWord))
{
ArrayList<String> listOfWords = map.get(canDictWord);
listOfWords.add(dictionaryWord);
}
}
ArrayList<String> keysList = new ArrayList(map.keySet());
Collections.sort(keysList);
for(String key : keysList)
{
System.out.print(key);
ArrayList<String> list = map.get(key);
Collections.sort(list);
for(String word : list)
{
if (toCanonical(key).equals(toCanonical(word)))
System.out.print(word + " ");
}
System.out.println();
}
}
private static void die(String errmsg)
{
System.out.println("\nFATAL ERROR: " + errmsg + "\n");
System.exit(0);
}
private static String toCanonical(String word)
{
char[] letters = word.toCharArray();
Arrays.sort(letters);
return new String(letters);
}
}
Установите точку останова и выполните свой код. Скорее всего, вы не удовлетворены условиями. – BlackHatSamurai