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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈嘉宾 中级黑马   /  2012-5-25 09:47  /  1951 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈嘉宾 于 2012-5-25 10:11 编辑

字符串反转问题,跟着毕老师一起做但结果不一样啊(找到问题了是字符串的空格多少的问题呵呵)还有

private static void reverse(char[] arr)
{
        for(int start=0,end=arr.length-1; start<end ; start++,end--)
        {
                swap(arr,start,end);
        }
}

这句话我不太理解谁能解释一下。到底是什么意思。下面是代码谢谢






{
        public static void sop(String str)
        {
                System.out.println(str);
        }
        public static void main(String[] args)
        {
                String s = "     ab cd      ";
                sop("("+s+")");
                sop("("+reverseString(s)+")");
        }
public static String reverseString(String s)
        {
        //字符串变数组
        char[] chs = s.toCharArray();
        //反转数组。
        reverse(chs);
        //将数组变成字符串
        return new String(chs);
        }
private static void reverse(char[] arr)
{
        for(int start=0,end=arr.length-1; start<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 赞一个!

查看全部评分

7 个回复

倒序浏览
同学,多看几遍吧,不难的,相信自己。比较简单,不好解释{:soso_e143:}
回复 使用道具 举报
就是想了解下字符串反转这块的代码是什么意思。。
private static void reverse(char[] arr)
{
        for(int start=0,end=arr.length-1; start<end ; start++,end--)
        {
                swap(arr,start,end);
        }
}
回复 使用道具 举报
本帖最后由 黄奕豪 于 2012-5-25 10:31 编辑

private static void reverse(char[] arr)
{
         for(int start=0,end=arr.length-1; start<end ; start++,end--)
         {
                 swap(arr,start,end);
         }
}
画个图吧,看着明白

123.jpg (62.94 KB, 下载次数: 11)

123.jpg

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
哦哦谢谢还是画图体会更深。。
回复 使用道具 举报
好谢谢明白了。
回复 使用道具 举报
就是想了解下字符串反转这块的代码是什么意思。。
private static void reverse(char[] arr)
{
        for(int start=0,end=arr.length-1; start<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;
}
数组头尾元素互换,当头元素大于或等于尾元素时挂掉
回复 使用道具 举报
谢谢加分~呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马