day13-06/07-String(字符串练习1/2-去除字符

2020-06-07  本文已影响0人  姗婷

/*
1.模拟一个trim方法,去除字符串两端的空格
思路:
1.判断字符串第一个位置是否是空格,如果是继续向下判断,
直到不是空格为止,结尾处判断空格也是如此。
2.当开始和结尾都判断到不是空格时,就是要获取的字符串
应用:就是判断用户名密码输入前后去掉空格

2.将一个字符串进行反转,将字符串中指定部分进行反转,"abcdefg";abcfedcg
思路:
1.曾经学习过对数组的元素进行反转
2,将字符串变成数组,对数组进行反转。
3.将反转后的数组变成字符串。
4,只要将反转的部分和结束为止作为参数传递即可

class StringTes1
{
    public static void main(String args[])
    {
        String s= "    ab cd   ";
        sop("("+s+")");
        //s=myTrim(s);
        //sop("("+s+")");
        sop("("+reverseString(s)+")");
    }
    public static void sop(String str)
    {
        System.out.println(str);
    }
    //练习二:将字符串进行反转
    public static String reverseString(String str,int start,int end)
    {
        //第1步:将字符串转换成数组,
        char[] chs = str.toCharArray();
        //第二步骤:将数组进行反转
        reserve(chs,start,end);
        //第三部:将反转后的数组转换成字符串;有两种,一种是构造函数,一种是静态方法
        return new String(chs);
        
    }
    public static String reverseString(String str)
    {
        return reverseString(str,0,str.length()-1);
    }
    //反转功能
    private static void reserve(char[] arr,int x,int y)
    {
        //包含头,不包含尾,所以end = y-1
        for(int start=x,end=y-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;
    }
    
    //练习一:去除字符串两端空格
    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)       
    }
}

上一篇下一篇

猜你喜欢

热点阅读