1. 程式人生 > >字串反轉 字串中的單詞逆序輸出 java

字串反轉 字串中的單詞逆序輸出 java

/**字串反轉
 * 
*如,輸入“I love China",要求輸出"China love I"
*/

import java.util.Scanner;

public class SwapWord
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		System.out.println("Please enter a string, such as 'I love China'");
		String s = new String(sc.nextLine());
		System.out.println("the string that was swaped before was:");
		System.out.println(s);
		System.out.println("the swaped string:");
		System.out.println(swapWord(s));
	}
	
	/**字串中的單詞從後到前排列
	 * 先把字串全部反轉,在按空格分隔來反轉各個單詞*/
	public static String swapWord(String s)
	{
		char[] a = s.toCharArray();
		swap(a,0,a.length-1);//現在得到的是“anihC evol I”
		
		int blank = -1;//前一個空格的位置
		for(int i=0;i<a.length;i++)
		{
			if(a[i]==' ')
			{
				int nextBlank = i;//後一個空格的位置
				swap(a,blank+1,nextBlank-1);
				blank=nextBlank;
			}
		}
		
		return (new String(a));
		
	}
	/**反轉全部自定開始和結束位置的字元陣列,包括字元陣列中的空格*/
	public static void swap(char[] c,int begin, int end)
	{
		while(begin<end)
		{
			char temp = c[begin];
			c[begin]=c[end];
			c[end]=temp;
			begin++;
			end--;
		}
	}
}