我目前无法解决我的代码及其问题。我正在尝试创建一个方法,使用递归和使用子字符串向后显示字符串。例如,如果我把“10 ten”作为我的论点,它应该反转单词并重复3次字母。
它将显示如下: nnneeettt以下是我的方法的一部分,侧重于该部分。
public static String method3(Integer num,String line)
{
//base case
if (line.length() == 1)
//return line + line + line;
return line.substring(line.length()) + line.substring(line.length()) + line.substring(line.length());
//recursive case
else{
return method3(num,line.substring(1)) + line.charAt(0) + line.charAt(0) + line.charAt(0);
}
}//end of else
我的输出显示了这个:
nnnee
它又错过了一次 “e”和最后3个“t”
编辑:
这是我的第二种方法“10十”重复两次而不是三次而不是反转
public static String method2(Integer num, String line)
{
//base case
if(line.length() == 1)
return line + line;
//recursive case
else{
return line.substring(0,1) + line.substring(0,1)
+ method2(num,line.substring(1,line.length()));
}//end of else
}//end of method2
输出: tteenn
答案 0 :(得分:2)
这是一种方法:
private static String reverse(String string) {
if(string.length() == 1)
return string + string + string;
else
return reverse(string.substring(1)) + string.charAt(0) + string.charAt(0) + string.charAt(0);
}