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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 皮卫凯 中级黑马   /  2012-9-18 22:27  /  1072 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 皮卫凯 于 2012-9-19 08:53 编辑

将字符串反转。
/*
           思路:
           1,将字符串变成数组。
           2,对数组反转。
           3,将数组变成字符串。
*/

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)                //这段代码是什么作用,我觉得可以删去不要。
             {
               return reverseString(s,0,s.length());
             }

private static void reverse(char[] arr,int x,int y)
{
  for(int start=x,end=y-1; start<end ; start++,end--)             //我觉得可以用charAt() 把字符串的位置获取,然后再交换,组成新的字符串。
{                                                                                             //charAt(0) 和 charAt(str.length-1) 直接交换
   swap(arr,start,end);                                                             //charAt(x)          charAt(y)
  }                                                                                          //  x++                         y--
}
private static void swap(char[] arr,int x,int y)
{
  char temp = arr[x];
  arr[x] = arr[y];
  arr[y] = temp;
}      

评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
将字符串反转。
/*
           思路:
           1,将字符串变成数组。
           2,对数组反转。
           3,将数组变成字符串。
*/

public static String reverseString(String s,int start,int end)
{
                   //字符串变数组。
                      char[] chs = s.toCharArray();                          //因为变成数组可以调用指针 你反转就是控制指针的位置 因为你最后输出的是字符串 所以要把数组编程字符串
                  //反转数组。
                  reverse(chs,start,end);
                 //将数组变成字符串。
                 return new String(chs);                              //你这里创建了两个字符串对象 类似new String("swz") 没必要这样最 直接 new String(s,0,s.length()); 这样下面那句就可以去掉了
}
             public static String reverseString(String s)                //这就就是把数组变成字符串              {
               return reverseString(s,0,s.length());
             }

private static void reverse(char[] arr,int x,int y)
{
  for(int start=x,end=y-1; start<end ; start++,end--)             //我觉得可以用charAt() 把字符串的位置获取,然后再交换,组成新的字符串。   我个人觉得只要实现方法什么样子都可以
{                                                                                             //charAt(0) 和 charAt(str.length-1) 直接交换
   swap(arr,start,end);                                                             //charAt(x)          charAt(y)
  }                                                                                          //  x++                         y--
}
private static void swap(char[] arr,int x,int y)
{
  char temp = arr[x];
  arr[x] = arr[y];
  arr[y] = temp;
}      

评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马