【发布时间】:2020-03-15 10:24:49
【问题描述】:
如果我有一个字符串 abcabcabcabc 和一个 int N 3,我会尝试返回 "cccc"。我知道如何使用for 循环来做到这一点,但我不知道如何使用递归来做到这一点。
非常感谢任何帮助。
这是我目前所拥有的:
public String everyNth(String s, int n){
if(s.length() % n == 0){
return s.charAt(n-1) + "";
}
else {
return everyNth(s.substring(n, s.length()), n);
}
}
到目前为止,它只打印“c”而不是“cccc”。
【问题讨论】:
-
从描述你想要做什么开始。
public String cccc() {return "cccc";}你不需要递归。 -
@LowKeyEnergy 我正在尝试打印字符串“s”中的“nth”字符,从 1 而不是 0 开始,这就是为什么 n = 3 == c 而不是 a。
-
如果 N=3 并且 s="abcabcabcabc" 那么“字符串 s 中的第 N 个字符”就是“c”......所以根据您自己的解释,您需要一个只打印“ c"。
-
输入
s = "abcabcabcabc"(长度为12)和n = 3,所以s.length() % n = 12 % 3 = 0,也就是说return s.charAt(n-1) + "";使得方法返回"c"。
标签: java string recursion substring