gausdrem: при брейке прерывается цикл, а не программа. В данном случае да, прервется и прога, но не из-за брейка, а из-за того, что после цикла нет кода, т.е. "программка кончилась"
gausdrem: плохо читаете. Настоятельно рекомендую прочитать про циклы и методы. Особенно про возвращение значений. И про функции высшего порядка не помешает
gausdrem: мало того, что вы возвращаете метод класса, вместо того что бы его вызывать, так еще return сам по себе перервет выполнение программы. А по поводу русских букв в терминале -- он у вас не настроен (вы же на винде, да?)
Jonibek: так в чем проблема. просто в конце условно такой код пишешь
if (!input().equals("MySymbol")) {break;}
При вводе текста "MySymbol" оно пойдет по другому кругу, при сем-то ином перервет цикл и соответственно так как кода после цикла нет -- завершит выполнение программы. Только функцию ввода заменить не забудь, я уже забыл как она называется (прогаю под Android)
Эмин: признаюсь честно, в джаве ни разу не делал того, о чем спрашивается в вопросе. В питоне часто приходилось, вот и скинул те способа с адаптацией под джаву
да, была примитивная идея просто хранить самые употребляемые слова + синонимы, может, как-то прикрутить. Но задача скорее не написать такой сервис, а разобраться КАК писать такое