天天看点

黑马程序员_日记23_字符串反转练习

 ——- android培训、java培训、期待与您交流! ———-

 

class StringReverseDemo 
{
    public static void main(String[] args) 
    {
        //目标字符串
        String str1 = "abcdefghijk";

        //反转全部字符串
        String str2 = reverseString(str1);
        System.out.println(str2);

        //反转指定字符串
        String str3 = reverseString(str1,,);//注意:包含头不包含尾
        System.out.println(str3);

    }

    //反转指定字符串
    public static String reverseString(String str,int start ,int end)
    {
        //1 字符串转字符数组
        char[] CharArray = str.toCharArray();   

        //2 指定数组元素反转
        reverseArray(CharArray,start,end);

        //3 数组转字符串
        return new String(CharArray);       
    }

    //反转全部字符串
    public static String reverseString(String str)
    {
        return reverseString(str,,str.length());
    }

    //指定数组元素反转
    public static void reverseArray(char[] CharArray,int x,int y)
    {
        //设置头尾指针
        int start = x,end = y-;

        //当头指针小于尾指针时,首尾交换
        while(start<end)
            swap(CharArray,start++,end--);
    }

    //数组全部反转
    public static void reverseArray(char[] CharArray)
    {
        reverseArray(CharArray,,CharArray.length);
    }

    //数组指定位置互换操作
    public static void swap(char[] ch,int x,int y)
    {
        //设置一个临时变量,三变量法
        char temp = ch[x];
        ch[x] = ch[y];
        ch[y] = temp;   
    }
}
           
黑马程序员_日记23_字符串反转练习

继续阅读