我需要编写一个方法,该方法将字符串作为参数并以镜像形式打印该单词。例如,“你好”应该返回“helloolleh”。我必须使用递归,不能使用for循环。到目前为止,这是我的代码:
public static String printMirrored(String str)
{
if(str == null || str.equals(""))
{
return str;
}
else
{
return str + printMirrored(str.substring(1)) + str.charAt(0);
}
}
我的输出是“helloellollolooolhh”,其中显然有一些额外的东西。任何指针都将非常感谢!
答案 0 :(得分:4)
尝试在开头使用str.charAt(0)
而不是str
。
答案 1 :(得分:2)
递归是关于将最其余的委托给递归克隆的最懒惰的人。 所以在“Hello”上,只取“H”,得到“ello”的镜像结果,然后在两端用“H”包围它。
答案 2 :(得分:2)
写得这么快。应该做你想要的,但如果你有任何问题,请告诉我。
String word = "hello";
System.out.println(reverseWord(word, word.length()));
public static String reverseWord(String word, int length) {
if(length == 0)
return word;
else
return reverseWord(word + word.charAt(length - 1), length - 1);
}
答案 3 :(得分:0)