-6
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; 部分不工作。从这里忽略它让我发布更多细节并且不知道该说什么,所以我只是漫无目的,直到它起作用,感谢任何帮助的人。

4

3 回答 3

5

当您调用reverse(s);main,您不会将结果分配给任何东西。

于 2013-04-08T22:15:53.200 回答
3

您需要对代码进行 2 处更改。

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

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

    s = reverse(s);
    
于 2013-04-08T22:22:38.977 回答
1

因为您没有使用方法 reverse(s) 的结果;为什么不使用时要返回字符串?

于 2013-04-08T22:16:56.193 回答