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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马州州 中级黑马   /  2012-8-3 11:37  /  1901 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

将字符串反转。
class Test
{
public static void main(String[] args)
{
  String s= "asdwadf";
  System.out.println(s);
  System.out.println(reverseString(s));

}
public static String reverseString(String s)
{
  char[] chs=s.toCharArray();
  reverse(chs);
  return new String(chs);
}
public static  void reverse(char[] arr)这里为什么重新创建一个数组呢?跟用chs有什么区别?我还用chs依然可以得到结果
                                                        而且这里新建一个数组,怎么跟上面的数组联系起来呢?
{
  
  for (int start=0,end=arr.length-1 ;start<end;start++,end--)
  {
   swap(arr,start,end);
  }
  
  
}
public static void swap(char[] arr,int x,int y)
{
  char temp=arr[x];
  arr[x]=arr[y];
  arr[y]=temp;
}
}

public static  void reverse(char[] arr)就是再定义这个方法的时候,为什么重新创建一个数组呢?跟用chs有什么区别?我还用chs依然可以得到结果
而且这里新建一个数组,怎么跟上面的数组联系起来呢?


3 个回复

倒序浏览
本帖最后由 郑正华 于 2012-8-3 11:58 编辑

楼主你理解错了吧。public static  void reverse(char[] arr)  这里括号里的内容意思是这个方法接收的是一个char类型的数组,arr是一个随便定义的变量名,不是你说的重新创建一个数组,没有创建..........
调用reverse方法时,肯定要往这个方法里传递一个char类型数组,你都写了reverse(chs);而且程序没报错,说明你的chs符合reverse方法的参数接收要求。
只要你传递进来的参数符合括号里的规定就OK!
回复 使用道具 举报
实现反转字符串没必要那么麻烦,看下我下面的代码你就明白了:
  1. public class test {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                 String str = "qweasd";
  8.                 String str2 = new StringBuilder(str).reverse().toString();
  9.                 System.out.println(str2);
  10.         }

  11. }
复制代码
回复 使用道具 举报
我自己想明白啦,问题已解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马