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