Reverse a String Using Recursion in Java

2025年3月26日 | 阅读 3 分钟

Java中的递归是指一个方法不断调用自身的过程。在编程语言中,如果一个程序允许我们在同一个函数名内调用函数,则称为函数的递归调用。它使代码紧凑,但难以理解。它用于解决可以分解为更小的重复性问题来解决的复杂问题。使用递归,我们可以解决许多复杂的问题,例如 阶乘程序斐波那契数列 等。同样,我们也可以使用递归在Java中反转字符串。在本节中,我们将学习如何在Java中使用递归反转字符串

递归函数执行以下步骤来反转字符串:

  • 首先,从字符串中删除第一个字符,并将该字符附加到字符串的末尾。
  • 重复上述步骤,直到输入字符串变为空。

假设,输入字符串JAVATPOINT需要反转。我们将从字符串中删除第一个字符,并将其附加到一个名为reversesting的变量中。让我们在 Java 程序中实现该功能,并 使用递归反转字符串

在以下示例中,我们创建了一个名为reverseString()的方法。它解析我们想要反转的字符串。在方法内部,我们首先检查字符串是否为空。如果字符串为空,它将返回相同的字符串并打印String is empty。我们使用了String类的以下两个方法:

substring(): 它返回指定字符串的子字符串。它解析一个参数,该参数指定子字符串的起始索引(开始)。

charAt(): 它返回指定索引处的字符。索引介于0到length()-1之间。

ReverseStringExample1.java

输出

Reverse a String Using Recursion in Java

让我们看另一个使用递归反转字符串的示例。

在以下示例中,我们创建了一个名为reverseString()的方法。它解析我们想要反转的字符串。在方法内部,我们使用逻辑OR运算符测试了两个条件。首先,我们将字符串与null进行比较,在第二个条件中,我们计算了字符串的长度并将其与1进行比较。如果其中一个或两个条件返回true,则方法将打印相同的字符串。

在else部分,我们递归地调用了reverseString()方法来反转字符串。该方法解析substring()方法返回的子字符串。substring()方法还解析两个参数:起始索引结束索引。它返回指定字符串的子字符串。因此,它以递归方式反转字符串。

ReverseStringExample2.java

输出

Reverse a String Using Recursion in Java