gpt4 book ai didi

java - 递归打印没有任何循环

转载 作者:行者123 更新时间:2023-11-30 07:42:37 31 4
gpt4 key购买 nike

没有找到任何其他类似的帖子所以我不得不问。打印任何东西都很容易……但是当您不允许使用迭代方法时,事情就会变得棘手。

我的问题是我在一个类中有两种方法。这个类有一个应该反向打印的字符串。使用迭代方法很简单,但当 char 和 int 妨碍时,

我尝试计算字符串中整数的数量与 char 的数量,然后使用另一种方法获取相同的字符串和 int 的数量以反向打印出来。

注意:需要这两个方法以string和int作为参数。

我做错了什么?

public class PrintRecursive {
private static int j;

public static void main(String[] args) {

String str = "Hello Everyone!";

print(str, 0);
System.out.println(); // Line break
printReverse(str, 0);
}

private static void printReverse(String str, int i) {
char ch = (char) i;
if (ch == ' ') {

} else
while (str.contains(str)) {
i += str.charAt(ch);
}
}

private static void print(String str, int i) {

while (str.equals(i)) {
System.out.println(str.charAt(j--));
}
}

}

结果:

大家好!!enoyrevE olleH

另外:请注意,我想我应该直接与方法对话,而不是我的“private int j”。

我的代码 atm 不是递归的!!!!!!!但我想要它,但我想不出这样做的方法。

最佳答案

递归方法(在每个递归步骤中打印一个字母)可能如下所示:

private static void print(String s, int i) {
if(i == s.length() - 1)
System.out.println(s.charAt(i));
else {
System.out.print(s.charAt(i));
print(s, i+1);
}
}

private static void printReverse(String s, int i) {
if(i == 0)
System.out.println(s.charAt(0));
else {
System.out.print(s.charAt(i));
printReverse(s, i-1);
}
}

你可以这样调用它:

public static void main(String[] args) {
print("abcd", 0);
printReverse("abcd", 3);
}

print() 传递整数 0 作为起始值,printReverse() 传递字符串的长度 - 1,这是最后一个索引信。

关于java - 递归打印没有任何循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54382577/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com