递归 反转字符串_使用递归反转字符串

递归 反转字符串

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

递归 反转字符串

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值