Удалить гласные буквы
Как удалить гласные буквы?
Я решила двумя способами. В первом способе результат выводится неправильный, а во втором выдает ошибку.
1 способ:
public class Vocale {
public static void main(String[] args) {
String str = "i love java";
String[] voc = {"a", "o", "e", "y", "i"};
for (int i = 0; i < voc.length; i++)
if (str.contains(voc[i])) {
System.out.println(str.replace(voc[i], ""));
}
}
}
Результат:
i love jv i lve java i lov java love java
2 способ:
public class Vocale {
public static void main(String[] args) {
StringBuilder str = new StringBuilder("I love java");
String[] voc = {"a", "o", "e", "y", "i"};
for (int i = 0; i < voc.length; i++) {
str.delete(voc[i]); // ошибка
System.out.println(str);
}
}
}
Подскажите пожалуйста в чем ошибка?
Ответы (2 шт):
Автор решения: Эникейщик
→ Ссылка
В первом случае вы каждый раз печатаете исходную строку, без одной главной буквы, оставляя все другие.
Во втором случае вы изменяете строку, по которой идёт итерация, в итоге она становится короче, что заканчивается обращением к несуществующему элементу (IndexOutOfBoundException или как-то так).
Автор решения: Nataliia Myronenko
→ Ссылка
public static String disemvowel(String text) {
String[] ao ={"a","o","i","u","e","O","I","U","E","A"};
for(int i=0; i<ao.length;i++){
text = text.replace(ao[i] ,"");
}
return text;
}