黑马程序员技术交流社区

标题: 字符串反转问题 [打印本页]

作者: 陈嘉宾    时间: 2012-5-25 09:47
标题: 字符串反转问题
本帖最后由 陈嘉宾 于 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;
        }

作者: 黑马11期李项京    时间: 2012-5-25 10:15
同学,多看几遍吧,不难的,相信自己。比较简单,不好解释{:soso_e143:}
作者: 陈嘉宾    时间: 2012-5-25 10:23
就是想了解下字符串反转这块的代码是什么意思。。
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:29
本帖最后由 黄奕豪 于 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, 下载次数: 17)

123.jpg

作者: 陈嘉宾    时间: 2012-5-25 10:32
哦哦谢谢还是画图体会更深。。
作者: 陈嘉宾    时间: 2012-5-25 11:03
好谢谢明白了。
作者: niceBoy    时间: 2012-5-25 11:38
就是想了解下字符串反转这块的代码是什么意思。。
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;
}
数组头尾元素互换,当头元素大于或等于尾元素时挂掉
作者: 陈嘉宾    时间: 2012-5-25 13:01
谢谢加分~呵呵




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