Java方法参数列表中是否允许嵌套调用其他方法?
Java相关问题解答
1. 方法参数调用其他方法的合法性
Java完全支持在方法的参数列表内调用其他有返回值的方法,只要被调用方法的返回值类型和对应形参的要求匹配即可,这不是你代码报错的原因。
2. 报错原因分析
你代码中报错的核心是replace方法传参类型不匹配:str.charAt(i)的返回值是char类型,此时会匹配String类的replace(char oldChar, char newChar)重载方法,该方法要求第二个参数也必须是char类型,但你传入的""是空字符串,属于String类型,类型不匹配因此触发编译报错。
修正方案
如果你要实现移除指定字符的逻辑,可选择以下两种修改方式:
方案一:使用字符串参数的replace重载
将char类型的待替换字符转为字符串,匹配replace(CharSequence target, CharSequence replacement)重载:
String str = "Candy"; // 注意:原逻辑每次都基于原始str替换,最终只会移除最后一位字符 // 如果需要逐次移除所有字符,修改初始赋值为newStr = str String newStr = str; for(int i=0; i<str.length();i++){ newStr = newStr.replace(String.valueOf(str.charAt(i)), ""); }
方案二:匹配char参数的replace重载
如果要保留char类型传参,第二个参数传入对应的char值即可,若要实现删除效果,更推荐使用方案一,逻辑更直观。
内容的提问来源于stack exchange,提问作者Steven S
相关产品推荐
相关产品推荐

