黑马程序员技术交流社区

标题: 模拟一个 trim 方法,去除字符串两端空格 [打印本页]

作者: 思如涌泉    时间: 2014-8-25 06:58
标题: 模拟一个 trim 方法,去除字符串两端空格
1模拟一个 trim 方法,去除字符串两端空格,
        思路:
        1 判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止.
                结尾处判断空格也是如此.
        2,当开始和结尾都判断到不是空格时, 就是要获取的字符串.

class StringTest
{
        public static void sop(String str)
        {
                System.out.println(str);
        }
        public static void main(String[] args)
        {
                String s = "              ab  cd              ";

                sop("("+s+")");
                s = myTrim(s);
                sop("("+s+")");
               
                sop("("+reverString(s)+")");//重载 ,参数变量可以改变!

        }

        //练习一,去除字符串两端空格.
        public static String myTrim(String str)//模拟trim方法
        {
                int start = 0, end = str.length()-1;

                while(start<=end && str.charAt(start)==' ')//判断多次用while语句
                        start++;
               
                while(start<=end && str.charAt(end)==' ')
                        end--;

                return str.substring(start,end+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);
       
        }
        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-- )//y是数组长度 不是数组角标!
                {
                        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;
       
        }

}




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