黑马程序员技术交流社区

标题: 下面是一个数组反转的函数,封装函数时候,怎么确定什... [打印本页]

作者: 张亚军    时间: 2013-8-5 12:53
标题: 下面是一个数组反转的函数,封装函数时候,怎么确定什...
本帖最后由 杨兴庭 于 2013-8-6 21:36 编辑

/*
* 需求:讲一个字符串反转

* 分析:1 先将字符串转化为数组
*    2 数组首尾进行交换
*    3将字符串转化为数组
* */
public class StringTest{
public static void main(String[] args) {//main方法
  String s="123456789";
  s=reserveString(s);
  sop(s);
  
}
private static void sop( Object obj){//封装输出函数
  System.out.println(obj);
}
private static String  reserveString(String str){//数组进行反转
  char [] arr=str.toCharArray();//转化为数组
   reserve(arr);//反转数组
   str=new String(arr); //数组转化为字符串

  return str;
}
private static void   reserve(char []arr){//封装反转函数:首尾交换
  for (int start = 0,end=arr.length-1; start < end; start++,end--) {
   swap(arr,start,end);   
  }  
}
private static void swap(char []cha,int x,int y){//封装交换函数
  char temp=cha[x];
  cha[x]=cha[y];
  cha[y]=temp;
  }
}

作者: 手心里的温柔    时间: 2013-8-5 22:06
楼主是想说明什么呢?
作者: 心灵之歌    时间: 2013-8-6 09:38
private static String  reserveString(String str){//数组进行反转
  char [] arr=str.toCharArray();//转化为数组
   reserve(arr);//反转数组
   str=new String(arr); //数组转化为字符串

  return str;
}
private static void   reserve(char []arr){//封装反转函数:首尾交换
  for (int start = 0,end=arr.length-1; start < end; start++,end--) {
   swap(arr,start,end);   
  }  
}
private static void swap(char []cha,int x,int y){//封装交换函数
  char temp=cha[x];
  cha[x]=cha[y];
  cha[y]=temp;
  }


这三个函数可以写成一个函数

private static String  reserveString(String str)//数组进行反转
{
         char [] arr=str.toCharArray();//转化为数组
        for (int start = 0,end=arr.length-1; start < end; start++,end--)
        {
                char temp=arr[start];
                  cha[start]=cha[end];
                  cha[end]=temp;   
          }  
}
这样就可以了!运行试试!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2