- /*
 
 - 将一个字符串进行反转。将字符串中指定部分进行反转,"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<end)
 
 -                         swap(CharArray,start++,end--);
 
 -         }
 
  
-         //数组全部反转
 
 -         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;        
 
 -         }
 
 - }
 
 
  复制代码 
 
 |   
        
 
    
    
    
     
 
 |