Рассмотрите возможность хранения данных отдельно от логики кода. Например (я собираюсь принять java из-за вашего примера, но я на самом деле не являюсь java-парнем, так что простите, если дженерики неверны):
HashMap responses = new HashMap<string, string>();
Затем просто добавьте на карту при вводе ответов.
responses.put("something", "response text");
Или в вашем случае:
responses.put(learn1, learn1Reply); // After you get the input
Если вы хотите отобразить соответствующий ответ, просто получите его, а не используйте какое-то большое дерево if-else. (Их трудно читать и поддерживать по мере роста.)
Так, а не
... else if(text.equalsIgnoreCase(learn1)){
JOptionPane.showMessageDialog(null, learn1Reply);
}
Вы можете просто выполнить поиск самостоятельно.
JOptionPane.showMessageDialog(null, responses.get(learn1);