为什么这不起作用?字符串值不会改变。递归

时间:2013-04-08 22:14:08

标签: java recursion

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));

    }
}
}

请帮助我,我不明白为什么s = h;部分不起作用。从这里忽略它让我发布更多的细节和idk说什么,所以我只是絮絮叨叨,直到它的工作感谢无论谁帮助。

3 个答案:

答案 0 :(得分:5)

当您在reverse(s);中致电main时,您并未将结果分配给任何内容。

答案 1 :(得分:3)

您的代码需要进行2次更改。

  1. 将静态字符串h初始化为:

    static String h = "";
    
  2. 使用main方法中的返回值:

    s = reverse(s);
    

答案 2 :(得分:1)

因为您没有使用方法反转的结果;为什么你在没有使用时返回String?