//第一种:
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+"|");
}
}