递归 反转字符串
1.简介
在本文中,您将学习如何使用递归方法来反转字符串。 第一个程序是反转字符串,第二个程序将读取用户的输入。
在之前的文章中,我已经展示了如何不使用任何内置函数来反转字符串,以及如何反转字符串中的单词 。
2.什么是递归
递归方法是计算机科学中的一种方法,它用不同的输入调用相同的函数。
递归方法必须至少有一个参数。
这种方法很容易解决许多复杂的程序,但是您必须非常小心,否则会产生StackOverflow或内存不足错误。
3.使用递归反转字符串的示例程序
要理解该程序,您应该知道两个String类方法,它们是charAt()和substring()方法。
package com.javaprogramto.w3schools.programs.string;
public class StringReverseRecursion {
public static void main(String[] args) {
String s1 = "Welcome to the javaprogramto.com";
String reversedS1 = reverseString(s1);
System.out.println("String s1 before reversing : "+s1);
System.out.println("Reversed String s1 : "+reversedS1);
String s2 = "Another String s2";
String reversedS2 = reverseString(s2);
System.out.println("String s2 before reversing : "+s2);
System.out.println("Reversed String s2 : "+reversedS2);
}
private static String reverseString(String sentense)
{
if (sentense.isEmpty())
return sentense;
//Calling method Recursively
return reverseString(sentense.substring(1)) + sentense.charAt(0);
}
}
输出:
String s1 before reversing : Welcome to the javaprogramto.com
Reversed String s1 : moc.otmargorpavaj eht ot emocleW
String s2 before reversing : Another String s2
Reversed String s2 : 2s gnirtS rehtonA
4.另一个示例,从用户反向读取String
在此程序中,用户必须输入要反转的字符串。 扫描程序类nextLine()方法用于从用户键盘读取输入字符串,并将字符串值传递给递归方法reverseString()。
package com.javaprogramto.w3schools.programs.string;
import java.util.Scanner;
public class StringReverseRecursionFromUser {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter String One");
String s1 = scanner.nextLine();
String reversedS1 = reverseString(s1);
System.out.println("String s1 before reversing : "+s1);
System.out.println("Reversed String s1 : "+reversedS1);
System.out.println("Enter String Two");
String s2 = scanner.nextLine();
String reversedS2 = reverseString(s2);
System.out.println("String s2 before reversing : "+s2);
System.out.println("Reversed String s2 : "+reversedS2);
}
private static String reverseString(String sentense)
{
if (sentense.isEmpty())
return sentense;
//Calling method Recursively
return reverseString(sentense.substring(1)) + sentense.charAt(0);
}
}
输出:
Enter String One
Reading from user
String s1 before reversing : Reading from user
Reversed String s1 : resu morf gnidaeR
Enter String Two
String entered by user
String s2 before reversing : String entered by user
Reversed String s2 : resu yb deretne gnirtS
5.结论
在本文中,我们已经看到了如何使用递归技术来反转String 。
本文显示的所有代码都在GitHub上 。
翻译自: https://www.javacodegeeks.com/2020/06/reverse-a-string-using-recursion.html
递归 反转字符串