完全颠倒一个字符串 和 数组按照中间的位置进行交换

来源:互联网 发布:js展开收起 折叠 效果 编辑:程序博客网 时间:2024/06/06 09:03

package basic;

import java.util.Arrays;

public class ResverseString {

 /**
  * @param args
  */
 public static void main(String[] args) {
  //ResverseString.stringtest();
  
  String originalString = "i love you";
  reverseString (originalString); 
  System.out.println("");
  
  
  int[] a = { 1, 2, 6,7, 4, 5 };
     reverse(a, 0, a.length - 1);
     System.out.println(Arrays.toString(a)); 

 }
 /**
  * 完全颠倒一个字符串
  * i love you 变成 uoy evol i
  * @param str
  */
  public static void reverseString (String str){  
         if (str.length() == 1){  
             System.out.print(str);  
         }  
         else{  
             String subString1 = str.substring(0, str.length()-1); //subStirng1就是originalString 截去最后一个字母
             String subString2 = str.substring(str.length()-1);   //截取最后一个字母
               
             System.out.print(subString2);//把最后一个字母 打印出来  
               
             reverseString (subString1);           
         }  
     }
 
  public static void stringtest(){
  
   String o = "i love you";
   System.out.println(o.length());
   String subString1 = o.substring(0, o.length()-1);
   System.out.println(subString1);
   String subString2 = o.substring( o.length()-1);
   System.out.println(subString2);
  }
  /**
   * 数组按照中间的位置进行交换
   * { 1, 2, 6,7, 4, 5 };变成[5, 4, 7, 6, 2, 1]
   * @param a
   * @param left
   * @param right
   */
  public static void reverse(int[] a, int left, int right) {
         if (left >= right){
          return;
         }
       //第一个   跟倒数第一个交换   
         int temp=a[left];
         a[left]=a[right];
         a[right]=temp;
         reverse(a,++left,--right);
     }


}

原创粉丝点击