Вот что я пытаюсь выполнить с помощью этой программы: рекурсивный метод, который проверяет, соответствует ли количество экземпляров подстроки указанному количеству экземпляров, возвращая логическое значение.
Вот проблема, которая возникает у меня с этим конкретным рекурсивным методом: я хотел бы иметь возможность перемещать счетчик внутри тела рекурсивного метода, однако я столкнулся с проблемой, которая возникает при сбросе счетчика при каждом рекурсивном вызове находится в теле метода. Единственный способ заставить его работать - это использование статической переменной counter, объявленной вне тела функции. Есть ли какая-либо другая техника, которую я могу использовать для определения счетчика метода в теле метода, чтобы этот метод мог действовать как «черный ящик»?
Спасибо за любые советы или идеи, которые вы можете предоставить.
public class strCopies {
//count instances of part and whole equality
static int count = 0;
public static boolean copies(String whole, String part, int check)
{
//check if current string length is valid
if(whole.length() < part.length())
{
//check if check parameter equals part instances
if(count == check)
{
return true;
}
else
{
return false;
}
}
//check if current string value is an instance of part
if(whole.substring(0, 3).equals(part))
{
count++;
}
//recursive call
return copies(whole.substring(1), part, check);
}
public static void main(String[] args)
{
System.out.println(copies("dogcatdog", "cat", 2));
}
}