方法一:将输入的字符串保存为String类型,利用toCharArray()转换为字符数组保存,再逆序输出数组即可
import java.util.Scanner;
public class javatest{
public static void main (String [] args){
Scanner s = new Scanner(System.in);
String str;
System.out.println("input:");
str= s.nextLine();
char [] res = str.toCharArray();
for(int i=res.length-1;i>=0;i--){
System.out.print(res[i]);
}
}
}
输入:abcdefg
输出:gfedcba
方法二:利用substring()方法递归
substring()方法用于提取字符串介于两个指定下标之间的字符。
public class javatest{
public static void reverse(String inputstr){
if(inputstr.length()==1){
System.out.print(inputstr);
}
else{
String substring1 = inputstr.substring(0, inputstr.length()-1);
String substring2 = inputstr.substring(inputstr.length()-1);
System.out.print(substring2);
reverse(substring1);
}
}
public static void main(String[] args){
reverse("ABCDEFG");
}
}
输出:GFEDCBA
方法三:直接利用StringBuffer类的reverse方法
String类是字符串常量,是不可更改的常量
StringBuffer是字符串变量,它的对象是可以扩充个修改的。
public class javatest{
public static void reverse(String inputstr){
StringBuffer stringBuffer = new StringBuffer (inputstr);
System.out.print(stringBuffer.reverse());
}
public static void main(String[] args){
reverse("ABCDEFG");
}
}
输出:GFEDCBA
方法四:一个算法直接逆序
public class javatest{
public static String reverse(String inputstr){
if(inputstr==null){
return null;
}
char[]arr = inputstr.toCharArray();
int half = arr.length /2;
for(int i=0;i<half;i++){
char c1 = arr[i];
char c2 = arr[arr.length-i-1];
arr[i] = c2;
arr[arr.length-i-1] = c1;
}
String res = String.copyValueOf(arr);
return res;
}
public static void main(String[]args){
System.out.println(reverse("abcdefg"));
}
}
输出:gfedcba