每日一题-Day03-输入一个字符串,输出其反转字符串

题目描述

输入一个字符串,输出其反转字符串,如输入的字符串为“abcde”,输出应当为“edcba

解题思路一

这道题可以运用递归来做,将字符串分成两个部分,第一个字符以及第二个字符到结束的字符,如第一次递归“abcde”后,变成“bcdea”,递归结束的条件为当只剩下一个字符时,无法再次分解,递归结束

import java.util.Scanner;

public class Main {
    public static  String f(String s){
        if(s.length()<=1) return s;
        return f(s.substring(1))+s.charAt(0);
        //此处将字符串分成两个部分:第二个字符到末尾 || 第一个字符
        //第一次将会形成s[1]-s[s.length()] s[0]
    }
    public static void main(String[] args) {
        System.out.println("请输入想要反转的字符串");
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        System.out.println(f(s));
    }
}

解题思路二

创建一个s1和输入字符串等长的字符串,将输入字符串的字符从末尾依次赋值给s1

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.println("请输入想要反转的字符串");
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        char []a = new char[s.length()];
        int len = s.length();
        for(int i=0;i<s.length();i++){
            a[i]=s.charAt(len-i-1);
             //此处len是字符串长度,所以应当再减一,否则第一次循环时,					   s.charAt(len-i)=s.charAt(len)超过字符串长度
            System.out.println(a[i]);
        }
    }
}

题目来自蓝桥杯

答案来自B站视频

知识点

substring()

当输入字符串s时,我们可以利用substring()来进行字符串截取,substring(begin,end),可以不写end,默认截取至结尾

charAt()

当输入字符串s时,我们可以利用charAt(index)来返回指定索引处的字符

posted @ 2021-02-04 10:56  2月2日  阅读(536)  评论(0)    收藏  举报