Не обращая внимания, это "BLRD" или "птица"?Потому что, если в нем нет гласных, ваш цикл do-while не завершается, кроме как выходом за пределы.
Ваш второй случай, «quiet» должен быть «uietqay», если вы не хотите добавить специальную логику для сохранения"ку" вместе.Вы могли бы выполнить это в своем состоянии while, сделав его более уродливым:
while( (!isVowel(s.charAt(i)) || isQU(s, i)) && !Character.toString(array[i]).equalsIgnoreCase("y"))
И затем реализовать соответствующее isQU(String s, int index)
.
Но я бы предложил немного больше переписать в порядкечтобы сделать ваш код более читабельным.Как, я не совсем уверен, почему ваш isVowel
проверяет «y», а ваше условие while также проверяет «y».Иногда вы используете array[i]
, а иногда charAt(i)
.Это несоответствие делает ваш код трудным для чтения практически без пользы.