递归字符串反向语法错误

时间:2015-04-22 01:01:03

标签: java recursion

public class Problems {
String a = "Tester";
public static String reverse(String s) 
{ 
    int m = s.length(); 

    if(m<=1) 
    {
        return s; 
    }
    else
    {
        m=m/2; 
        String r1=reverse(s.substring(0,m)); 
        String r2=reverse(s.substring(m)); 
        return (r2+r1); 
    }
} 


reverse(a);
System.out.println(a);

}

我目前有一个递归字符串程序,但我得到一个插入“}”来完成正文。这可能很简单,但我不确定为什么我的程序没有编译。我的程序中是否还有其他错误?我非常感谢你的帮助,我希望我能够让这个工作!谢谢你们

3 个答案:

答案 0 :(得分:1)

你缺少一个主要的(假设有意运行它)

这是一个有点改变的程序..

public class Problems {

    public  static String reverse(String s) {
        int m = s.length();

        if (m <= 1) {
            return s;
        } else {
            m = m / 2;
            String r1 = reverse(s.substring(0, m));
            String r2 = reverse(s.substring(m));
            return (r2 + r1);
        }
    }

    public static void main(String[] args) {
        String a = "Tester";
        String result=reverse(a);

        System.out.println(a);
        System.out.println(result);
    }
}

答案 1 :(得分:0)

这些行

reverse(a);
System.out.println(a);

超出你的方法。这在Java中无效。只有声明可以在方法之外发生(在类级别)。通过将位于其正上方的}移动到它们正下方的直线来解决此问题。

答案 2 :(得分:0)

这些行:

reverse(a);
System.out.println(a);

应该是静态方法,或构造函数/初始化程序。 除此之外,为什么不简单地使用new StringBuilder(s).reverse().toString()