補充2:字符串逆序

方法一:將輸入的字符串保存爲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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章