Рекурсия с replace () в Java - PullRequest
0 голосов
/ 22 ноября 2018

Я занят изучением рекурсии в Java, и у меня есть задача с заменой в рекурсии, у меня есть следующий метод, который работает, и теперь я хочу перейти в рекурсию.

public class replaceWith {
 public static void main(String[] args)
 {
     System.out.println(replaceWith("Hallo World" , "ll","@@"));


 }


 public static String replaceWith(String str1, String str2, String str3)
 {

         return str1.replaceAll(str2, str3);
 }

}выше код работает, ниже мой код для рекурсии replace ()

public class replaceWith {
 public static void main(String[] args)
 {
     System.out.println(replaceWith("Hallo World" , "ll","@@"));


 }

 public static String replaceWith(String str1, String str2, String str3)
 {

     if (str1.length() <=1)

         return str1;
     else
         return replaceWith(str1.replaceAll(str2, str3));
 }

}

Я получаю сообщение об ошибке при моем последнем возврате, которое гласит: «Метод replaceWith (STring, String, String) в типе replaceWith неприменимо для аргументов (String) "

Какая будет причина для этого?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Рекурсивный вызов return replaceWith(str1.replaceAll(str2, str3)); содержит один параметр String, но функция replaceWith содержит три параметра String.Существует несоответствие в количестве аргументов в рекурсивном вызове

0 голосов
/ 22 ноября 2018

"Метод replaceWith (STring, String, String) в типе replaceWith не применим для аргументов (String)"

Поскольку для replaceWith нужны 3 параметра, но вы передаете толькоодин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...