Мы практикуем рекурсию в классе, и одно из этих упражнений вызывает у меня затруднения (в нем нельзя использовать циклы). Я должен написать метод, который принимает строку и массив символов, который возвращает строку со всеми удаленными из нее символами массива.
Вот что у меня есть. далеко. Я изо всех сил пытаюсь удалить несколько символов: например, когда я ввожу
char[] remLetArray = {'a', 's'};
System.out.println(removeLetters("asdfghsassaaaae", remLetArray));
он возвращает «sdfghssse». Вот все:
// helper method
public static String removeLetters(String str, char[] ch, int pointer) {
if (pointer != ch[ch.length - 1]) {
if (str.length() == 0) {
return removeLetters(str, ch, pointer + 1);
}
if (str.charAt(0) == ch[pointer]) {
return removeLetters(str.substring(1), ch);
} else {
return str.charAt(0) + removeLetters(str.substring(1), ch);
}
} else {
System.out.println(str);
if (str.length() == 0) {
return "";
}
if (str.charAt(0) == ch[pointer]) {
return removeLetters(str.substring(1), ch);
} else {
return str.charAt(0) + removeLetters(str.substring(1), ch);
}
}
}
// actual method
public static String removeLetters(String str, char[] ch) {
return removeLetters(str, ch, 0);
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... nly-removi