每日一题-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)来返回指定索引处的字符