1. 程式人生 > >java去除字串兩端空格,對字串指定位置進行反轉。

java去除字串兩端空格,對字串指定位置進行反轉。

1,模擬一個trim方法,去除字串兩端的空格。
思路:
1,判斷字串第一個位置是否是空格,如果是繼續向下判斷,直到不是空格為止。
結尾處判斷空格也是如此。
2,當開始和結尾都判斷到不是空格時,就是要獲取的字串。
2,將一個字串進行反轉。將字串中指定部分進行反轉,"abcdefg";abfedcg
思路:
1,曾經學習過對陣列的元素進行反轉。
2,將字串變成陣列,對陣列反轉。
3,將反轉後的陣列變成字串。

4,只要將或反轉的部分的開始和結束位置作為引數傳遞即可。

class StringTest 
{
	public static void sop(String str)
	{
		System.out.println(str);
	}
	public static void main(String[] args) 
	{
		String s = "      ab cd      ";

		sop("("+s+")");
//		s = myTrim(s);
//		sop("("+s+")");
		sop("("+reverseString(s)+")");		
	}

	//練習二:將字串反轉。
	/*
	思路:
	1,將字串變成陣列。
	2,對陣列反轉。
	3,將陣列變成字串。
	*/
	public static String reverseString(String s,int start,int end)
	{
		//字串變陣列。
		char[] chs = s.toCharArray();
		//反轉陣列。
		reverse(chs,start,end);
		//將陣列變成字串。
		return new String(chs);
	}
	public static String reverseString(String s)
	{
		return reverseString(s,0,s.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 String myTrim(String str)
	{
		int start = 0,end = str.length()-1;
		while(start<=end && str.charAt(start)==' ')
			start++;
		while(start<=end && str.charAt(end)==' ')
			end--;
		return str.substring(start,end+1);
	}
}
————摘自《畢向東25天》