文字列の操作練習1と練習2

1884 ワード

/* 
*            
*                
* Copyright (c) 2011,               
* All rights reserved.   
*     :                                         
*       :                                  
*     :2011    10    10      
*     :x1.0            
   
*                 
*     :  
*     : 1,    trim  ,          。
			  :
			1,               ,         ,        。
				           。
			2,               ,         。



			2,          。             ,"abcdefg";abfedcg
				  :
				1,               。
				2,        ,     。
				3,            。
				4,                         。
*     :   
*           
*/


class StringTest 
{
	public static void main(String[] args) 
	{
//		String str = "   ab cd   ";
//		sop(myTrim(str));
		String str = "abcdefg";
		sop(reverseString(str));
	}


	//   ,         。
	public static String myTrim(String str)
	{
		int start = 0;
		int end = str.length() - 1;

		while(str.charAt(start) == ' ' && start < end)
		{
			start++;
		}
		while(str.charAt(end) == ' ' && start < end)
		{
			end--;
		}

		return str.substring(start, end + 1);

	}

	//   :      。
	/*
	  :
	1,        。
	2,     。
	3,        。
	*/
	public static String reverseString(String str, int start, int end)
	{
		//1,        。
		char[] chs = str.toCharArray();

		//2,     。
		reverse(chs, start, end);

		//3,        。
		return new String(chs);
	}
	public static String reverseString(String str)
	{
		return(reverseString(str, 0, str.length()));
	}
	private static void  reverse(char []arr, int x, int y)
	{
		for(int start = x, end = y - 1; start < end; start++, end--)
		{
			swap(arr, start, end);
		}
	}
	private static void  swap(char []arr, int x, int y)
	{
		char temp = arr[x];
		arr[x] = arr[y];
		arr[y] = temp;
	}

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}