天天看點

Java不使用trim()去除頭尾空格的方法

//第一種:

public class Sl{
	public static void main(String[] args){
		String str = "     Hello world java     ";
	
		int start = 0;
		int end = str.length() - 1;
		
		//charAt(index) 找到指定下标的字元并傳回和空格進行對比
		//如果是空格start就自增,自增副作用在這裡也是想要的,這裡最後start就是字元串第一個字元的下标
		while(str.charAt(start)==' '){
			start++;
		}
			
		//從字元串尾部依次向前和空格進行對比
		while(str.charAt(end)==' '){
			end--;
		}
		
		System.out.println("|"+ str + "|");
		//end+1是因為開始和結束是半閉半開的區間,也就是[start,end) 是無法取到end的,是以這裡要+1
		System.out.println("|"+ str.substring(start,end+1) + "|");
  }
}
           
//第二種:
public class Demo{
	public static void main(String[] args){
		String str = "     Hello world java     ";
		
		String trimStr;
		int startIndex = 0;
		int endIndex = 0;
		//将字元串轉為字元數組用于循環中的計算
		char[] arrCh =str.toCharArray();
		
		for(int i = 0;i<arrCh.length;i++)
			if(arrCh[i]==' ')
				startIndex = i;
			else
				break;
				
		for(int i = arrCh.length-1;i>=0;i--)
			if(arrCh[i]==' ')
				endIndex = i;
			else
				break;
		
		//字元數組轉為字元串
		//循環取到的是頭部最後一個空格的下标,是以startIndex需要加1
		//尾部循環取到的是尾部最後一個空格,但是因為是半閉半開
		//[startIndex,endIndex) 是以endIndex直接用不需要-1
		trimStr=str.substring(startIndex+1, endIndex);
		
		System.out.println("|"+str+"|");	
		System.out.println("|"+trimStr+"|");
	}
}