【发布时间】:2017-01-25 22:08:01
【问题描述】:
我目前无法解决我的代码及其问题。我正在尝试创建一种方法,该方法通过递归和使用子字符串向后显示字符串。例如,如果我把“10 十”作为我的论点,它应该反转单词并重复字母 3 次。
它会像这样显示: 呸呸呸
这是我的方法的一部分,重点关注该部分。
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"
编辑:
这是我的第二种方法,“十十”重复单词两次而不是三次而不是反向
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
输出: 青少年
【问题讨论】:
-
你想向后显示字符串,那么“10 10”肯定会变成“net 01”吗?我错过了什么?
-
@jconder 我添加了另一个代码,它直接执行而不向后执行
-
num参数有什么作用? -
这是与我的方法不同的参数。我有 5 种方法,但我的第 4 种方法特别有问题
-
啊,如果您将与您的问题无关的内容排除在问题之外,这将有助于获得更快、更准确的回复。对于自我调试来说,尝试以最可简化的形式隔离问题通常也很有用,很多时候这将帮助您清楚地看到您遇到的问题,这也可能有助于您找到答案。