Могу ли я вызвать другой метод внутри списка аргументов другого метода?

#java

Вопрос:

Я получаю ошибку, связанную с методом замены. Могу ли я вызвать другой метод внутри списка аргументов другого метода?

 String str="Candy";  String newStr = "";  for(int i=0; ilt;str.length();i  ){  newStr = str.replace(str.charAt(i),"");  }```  

Комментарии:

1. Какая у Вас ошибка ?

2. Это возможно. Единственная недопустимая вещь здесь заключается в том, что вы предоставляете a char в качестве первого аргумента ( str.charAt(i) ) и a String в качестве второго аргумента ( "" ) replace . Вы могли бы использовать String.valueOf(str.charAt(i)) вместо этого.

Ответ №1:

str.charAt(i) возвращает a char и String#replace принимает a String в качестве своего первого аргумента. Переработайте его, чтобы

 newStr = str.replace(String.valueOf(str.charAt(i)),"");  

Ответ №2:

Ваша проблема не связана с «другим методом внутри списка аргументов другого метода».

Этот звонок

 str.replace(str.charAt(i),"");  

нужен метод, соответствующий

 String replace(char, String);  

Такого метода не существует. Существуют методы, соответствующие

 String replace(char, char);  String replace(String, String);  

(Незначительные вольности, принятые в интересах простоты; фактические методы имеют аргументы последовательности символов, а не строки, но это не влияет на ответ)