补充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

猜你喜欢

转载自blog.csdn.net/cherishgf/article/details/80760361