Java 为什么不是';这不管用吗?字符串值赢得';不要改变。递归
请帮助我,我不明白为什么s=h;部分不起作用。从这里忽略它会让我发布更多的细节和idk该说什么,所以我只想漫无目的地说,直到它起作用为止。谢谢你的帮助。当你调用Java 为什么不是';这不管用吗?字符串值赢得';不要改变。递归,java,recursion,Java,Recursion,请帮助我,我不明白为什么s=h;部分不起作用。从这里忽略它会让我发布更多的细节和idk该说什么,所以我只想漫无目的地说,直到它起作用为止。谢谢你的帮助。当你调用reverse(s)在main中,您没有将结果分配给任何对象。因为您没有使用方法反向的结果;为什么返回未使用的字符串?您需要对代码进行两次更改 将静态字符串h初始化为: public class ggg { static int y=0; static int x; static String h; public static void
reverse(s)
在main
中,您没有将结果分配给任何对象。因为您没有使用方法反向的结果;为什么返回未使用的字符串?您需要对代码进行两次更改
public class ggg
{
static int y=0;
static int x;
static String h;
public static void main(String [] args)
{
String s = "hadoyef";
x = s.length();
System.out.println(s);
reverse(s);
System.out.println(s);
}
public static String reverse(String s){
if (s.length() == 1){
//System.out.print(s);
h = h + s.substring(0,1);
s=h;
System.out.println(s);
return s;
}
else{
h = h + s.substring(s.length()-1,s.length());
return reverse (s.substring(0, s.length()-1));
//System.out.print(s.substring(0,1));
}
}
}
static String h = "";
定义“不工作”。阅读它的作业,我必须返回我发送给它的字符串。@frank,你主要只调用一次reverse。您需要打印从它返回的值,而不是再次打印
s
。@这是一个范围问题。您在反向方法中说的是s=h
,它被限制在方法中收集的字符串s
变量中。这不会对main中的字符串产生任何影响。要查看效果,请使用System.out.println(反向)代码>在您的主要方法中。非常感谢您向我解释这一点,smit
s = reverse(s);