天天看点

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+"|");
	}
}