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

 ——- android培训、java培训、期待与您交流! ———-
 
/*
将一个字符串进行反转。将字符串中指定部分进行反转,”abcdefg”;abfedcg

分析功能:
1 功能的结果,反转指定字符串——————–返回值是String类型。
2 有没有未知变量–指定字符串,起始位,结束位。–参数类型是(String str,int start,int end)

思路:因为要指定部分字符串进行反转,就要利用到脚标,继而要利用数组,所以思路如下。
1 把字符串全部转换为字符数组–char[] toCharArray()
2 把数组指定元素反转———-自定义一个功能反转数组reverse()
3 把字符数组全部转换为字符串–构造函数法string new(char[] ch)。或者静态方法static String copyValueOf(char[] ch);
4 将指定反转的部分做参数传递。

数组反转复习:
设置头尾指针,当头指针小于尾指针的时候首尾交换,首尾指针自增的同时尾指针自减。
利用三变量法进行交换操作。

小结:功能要尽量细分,封装,不要全部放一堆,这就是抽象的设计思想,这样以后改起来会很方便的。
注意:功能都是包含头不包含尾的!!
*/

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

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

        //反转指定字符串
        String str3 = reverseString(str1,0,3);//注意:包含头不包含尾
        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,0,str.length());
    }

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

        //当头指针小于尾指针时,首尾交换
        while(start//数组全部反转
    public static void reverseArray(char[] CharArray)
    {
        reverseArray(CharArray,0,CharArray.length);
    }

    //数组指定位置互换操作
    public static void swap(char[] ch,int x,int y)
    {
        //设置一个临时变量,三变量法
        char temp = ch[x];
        ch[x] = ch[y];
        ch[y] = temp;   
    }
}

黑马程序员_日记23_字符串反转练习_第1张图片

你可能感兴趣的:(黑马Java基础学习笔记)