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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马张平 中级黑马   /  2012-4-4 21:36  /  1321 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class StringText
{
        public static void main(String[] args)
        {
                String s = "   abc dfe   ";
                sop(s);
                //String s1=myTrim(s);
                //sop(s1);
                reverseString(s,3,6);
        }
        public static void sop(String str)
        {
                System.out.println(str);
        }
        public static String myTrim(String str)
        {
                int start = 0 , end = str.length()-1;

                while (start<=end && str.charAt(start)==' ')
                {
                        start++;
                }
                while (start<=end && str.charAt(end)==' ')
                {
                        end--;
                }
                return str.substring(start,end+1);
        }
                //反转字符串
                //将字符串转成字符数组
                //将字符数组反转
                //将字符数组转成字符串。
        public static String reverseString(String str,int start,int end)
        {
                char[] chs = str.toCharArray();
                reverse();
                return new String(chs);
        }
        public static void reverse(char[] arr,int x,int y)
        {
                for (int start=x,int end=y-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;
        }
}
  




3 个回复

倒序浏览
public static String reverseString(String str,int start,int end)
        {
                char[] chs = str.toCharArray();
                reverse();---------------------------------------------------------->没传参数怎么能调用下面 reverse(char[] arr,int x,int y)方法?
                return new String(chs);
        }

         public static void reverse(char[] arr,int x,int y)
        {
                for (int start=x,int end=y-1;start<end;start++,end)---------------->定义方式错误,应该是:                                                                        for (int start=x,iend=y-1;start<end;start++,end--)                {
                        swap(arr,start,end);
                }
        }
   
回复 使用道具 举报
靠,多打一个字母...应该是:for (int start=x,end=y-1;start<end;start++,end--) ,end前是不能加int的.....
回复 使用道具 举报
我已经解决了,确实是上面二个问题。当时没注意!谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马