Java 使用三种预先给定的方法反向打印字符串?
我需要编写一个Java 使用三种预先给定的方法反向打印字符串?,java,string,recursion,methods,Java,String,Recursion,Methods,我需要编写一个printBackwards()方法,使用三个预先给定的方法first、rest和lengthprintBackwards()方法需要将字符串作为参数,并在控制台上打印该字符串的每个字母,但每个字母都需要以相反的顺序打印在新行上。因此,如果字符串为House,则输出应为: e s u o H 在本练习中,我们应该使用递归和if-else语句。没有数组,没有其他(熟悉的)字符串方法,没有while和for循环 我做了一点,我知道这是不正确的,但这就是我努力做到的。我不知道如何编写代码
printBackwards()
方法,使用三个预先给定的方法first
、rest
和length
printBackwards()
方法需要将字符串作为参数,并在控制台上打印该字符串的每个字母,但每个字母都需要以相反的顺序打印在新行上。因此,如果字符串为House
,则输出应为:
es
u
o
H 在本练习中,我们应该使用递归和if-else语句。没有数组,没有其他(熟悉的)字符串方法,没有while和for循环 我做了一点,我知道这是不正确的,但这就是我努力做到的。我不知道如何编写代码,因此该方法可以在字母
e
之前返回字母。这里如何使用递归
因为这是一个家庭作业问题,我会尽可能多地留给你,这样你就可以学习了 考虑以下两个事实:
第1点。是主方法体,在其中使用递归打印其余部分 一旦有了终止条件和递归结构(通常是预序或后序操作),就可以构建递归方法 还要注意方法的名称printBackwards()(而不是Backwards())。即,该方法进行打印;它不会向后返回字符串 因此,将上述内容转换为伪代码(在本例中实际上就是伪代码):
因为这是一个家庭作业问题,我会尽可能多地留给你,这样你就可以学习了 考虑以下两个事实:
第1点。是主方法体,在其中使用递归打印其余部分 一旦有了终止条件和递归结构(通常是预序或后序操作),就可以构建递归方法 还要注意方法的名称printBackwards()(而不是Backwards())。即,该方法进行打印;它不会向后返回字符串 因此,将上述内容转换为伪代码(在本例中实际上就是伪代码):
首先,您需要在
printfackwards
函数中打印输出,因此main如下所示:
public static void main(String args[])
{
printBackwards("House");
}
System.out.println(first(s));
第二,是递归的工作方式。如果你想让它按升序执行,你应该在self函数调用之前做一些事情。否则,在执行顺序降序的情况下,代码应该在自调用函数之后执行。这些是递归函数的基本原理
在这种情况下,让我们尝试构建答案。首先,我们需要处理停止条件,它应该总是写在自调用函数之前。最好也是最常见的停止条件是到达某个内容的结尾,在这种情况下,当我们得到一个空字符串时,在所有其他情况下,我们需要调用self函数,只需稍作更改,在这种情况下,它将向函数提供字符串的其余部分:
if ( !length(s) )
{
//stop the recursion
return;
}
else
{
printBackwards(rest(s));
}
当您到达停止递归语句时,从这一点开始,它将关闭所有打开的自函数执行,因此将返回。这是我们需要实现的完美状态,向后打印字母,因为在
printfackwards
执行的每个状态下,我们都将字符串从左侧字母中切掉一点,这意味着第一个字母就是我们需要的。例如,在字符串
House
的情况下,printBackwards
函数的最后一次调用将在s
变量将保持e
值时进行,因为当我们达到停止条件时,它是从被切断到空字符串的一个分支。在本例中,我们希望将其打印出来,但在此之前的self调用中,s
变量将保存值se
,因为这是剪切第一个字母之前的一步。所以,我们不想打印整个值,只想打印它的第一个字母,如下所示:
public static void main(String args[])
{
printBackwards("House");
}
System.out.println(first(s));
将所有内容结合在一起,将导致以下实施:
public static String printBackwards(String s)
{
if ( !length(s) )
{
//stop the recursion
return;
}
else
{
printBackwards(rest(s));
System.out.println(first(s));
}
}
希望,我解释清楚了
祝你好运 首先,您需要在
printBackwards
函数中打印输出,因此主界面如下所示:
public static void main(String args[])
{
printBackwards("House");
}
System.out.println(first(s));
第二,是递归的工作方式。如果你想让它按升序执行,你应该在self函数调用之前做一些事情。否则,在执行顺序降序的情况下,代码应该在自调用函数之后执行。这些是递归函数的基本原理
在这种情况下,让我们尝试构建答案。首先,我们需要处理停止条件,它应该总是写在自调用函数之前。最好也是最常见的停止条件是到达某个东西的结尾,在这种情况下是当我们得到一个空字符串时,在所有其他情况下,我们需要调用self函数,只需稍作更改,