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