在 Java 中递归地反转字符串
递归是重复调用函数本身直到中断条件满足标准的过程。它允许用户从自身调用函数本身。以下是使函数递归必须满足的一些条件:
- 函数必须从同一个函数调用自身。
- 需要一个终止条件来阻止递归循环被重复调用。
- 递归在其动作过程中使用 Stack 数据结构。它在其存储器中存储变量和函数调用。
下面是在 Java 中使用递归反转字符串的代码块。
import java.util.Scanner;
public class StringReverseUsingRecursion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter any String :");
String str = scanner.nextLine();
System.out.println("The reverse of the String is : " + recursiveReverse(str));
}
static String recursiveReverse(String input) {
if ((input == null) || (input.length() <= 1))
return input;
else {
return recursiveReverse(input.substring(1)) + input.charAt(0);
}
}
}
在上面的代码块中,该类包含一个静态方法和 main
方法。recursiveReverse()
方法是静态递归函数,它使用递归来反转字符串。它接受一个输入参数并返回一个字符串值。
在 main
方法中,使用 new 关键字实例化 Scanner 类。Scanner 类的构造函数以 Input Stream 为参数,从输入源扫描后产生输入字符串。
它还转换默认字符集(即 UTF-8 标准集)中的字节流。如果无法将数据转换为默认字符集,构造函数将抛出 IllegalArgumentException
。
System 是一个类 java.lang
包,它代表标准输入流实例方法和变量。In
是打开并准备提供输入数据的输入流的实例变量。
此流使用键盘输入或用户指定的其他输入源。
nextLine()
函数返回当前行,不包括末尾的行分隔符。因此,这将在 str
变量中存储用户定义的输入行。String 稍后传递给静态递归方法。
静态 recursiveReverse()
方法中的终止条件是检查输入是否为空或小于 1,然后返回输入字符串本身。
如果条件不满足,它会再次调用函数本身,但使用不包括第零个字符的子字符串。substring()
函数创建实际字符串的子字符串,并再次将较小的流传递给相同的方法。
因此它被迭代调用,最后,开始返回字符作为响应。
输出:
Enter any String :
Hello
The reverse of the String is : olleH.
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。