A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

韩涛

中级黑马

  • 黑马币:0

  • 帖子:13

  • 精华:0

© 韩涛 中级黑马   /  2013-5-25 10:56  /  1306 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static String reverseString(String s,int start, int end)
{
  //字符串变数组。
  char[] chs =s.tocharArray();
  //反转数组。
  reverse(chs,start,end);
  //将数组变成字符串。
  return new String (chs);
}
public static String reverseString(String s)
/*
思路:
1,将字符串变成数组。
2,对数组反转。
3,将数组变成字符串。
*/
{
  
  return reverseString(s,0,s.length());
  
}

private static void reverse(char[] arr,int x,int y)
{
  for (int start=x;end=y-1 ;sart<=end;start++,end-- )
  {
   swap(arr,start,end);
  }
}
private static void swap(char[] arr,int x,int y)
{
  char temp =arr[x];
  arr[x]=arr[y];
  arr[y]=temp;
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
先看明白大概思路,静下心来,然后跟着思路一个一个看  哪块不理解的可以  详细标出  提问,  呵呵    加油
回复 使用道具 举报
这个还是不难理解的,我估计你费解的地方是
private static void reverse(char[] arr,int x,int y)
{
   for (int start=x;end=y-1 ;sart<=end;start++,end-- )
   {
    swap(arr,start,end);
   }
}
private static void swap(char[] arr,int x,int y)
{
   char temp =arr[x];
   arr[x]=arr[y];
   arr[y]=temp;
}
这两端代码好理解,就是一个是数组反转的,第二个是交换的功能,这个功能又被数组反转里面用到了。

public static String reverseString(String s)     //这个函数作用就是将字符串反转,是吧,其实它也是隐藏了一个开始位置和一个结束位置的,没写这两个参数就是默认从0开始
                                          到s.length()。所以老师直接把这两个参数提取出来传给了最上面的那个函数就成了public static String reverseString(String
                                                                    s,int start, int end){}      这样不是更简单了,直接调用这个参数就可以完成一个字符串其中的一部分或者整体的反转,太棒了
/*
思路:
1,将字符串变成数组。
2,对数组反转。
3,将数组变成字符串。
*/
{
   
   return reverseString(s,0,s.length());
   
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马