您的位置:首页 > 编程语言 > Java开发

【练习】String类的trim方法

2016-02-18 17:00 525 查看
package cn.itcast.object;

import java.util.Arrays;

/*

 自己实现trim方法

 

  1.将字符串转换为char类型数组buf

  2.遍历buf数组,将第一个非空格字符之前的所有空格删除,保存为一个新数组buf1

  3.遍历buf1数组,将最后一个非空格字符之后的所有空格山删除,保存为一个新数组buf2

  4.用buf2字符数组构建一个字符串对象并返回该对象

 */

public class Demo6 {

public static void main(String[] args){
String str="      我们的祖国     是花园     ";
char[] buf=str.toCharArray();
System.out.println(Arrays.toString(buf));
String s=trim(buf);
System.out.println(s);
}
public static String trim(char[] buf){

int count=0;//定义一个变量,计算第一个非空格字符前的空格个数
for(int i=0;i<buf.length;i++)
{
if (buf[i]==' '){
count++;
continue;
}else{
break;

}
}
System.out.println("第一次找到了"+count+"个空格");
//定义一个变量,作为buf1数组的长度
int newlength=buf.length-count;
//定义一个新数组
char[] buf1=new char[newlength];
//创建一个变量作为新数组索引值
int index=0;
//遍历旧数组
for(int i=0;i<buf.length;i++){

char temp=buf[i];

if(i>count-1){
buf1[index++]=temp;
}
}
System.out.println("去除前面空格结果是:"+Arrays.toString(buf1));
//下一步要去除最后一个非空格字符后面的空格

//定义一个变量,记录后面空格的个数
int count2=0;
//从后往前遍历buf1,计算出count2的个数
for(int i=buf1.length-1;i>=0;i--){

if(buf1[i]==' '){
count2++;
continue;
}else{
break;
}
}
System.out.println("第二次找到了"+count2+"个空格");
//定义一个变量,作为最终数组的长度
int finallength=buf1.length-count2;
//新建一个数组,作为最终的字符数组
char[] buf2=new char[finallength];
//创建一个变量,作为最终数组的索引
int last=0;
//遍历旧数组
for(int i=0;i<buf1.length-count2;i++){
buf2[last]=buf1[i];
last++;
}
System.out.println("所以最终结果是:"+Arrays.toString(buf2));
String s=new String(buf2);
return s;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java string