字符串逆置的两种方法


 1 public class ReverseString {  2 
 3     /**
 4  * 字符串指定逆置  5  *  6  * @param str  7  * 字符串  8  * @param start  9  * 开始下标 10  * @param end 11  * 结束下标 12  * @return chsr数组 13      */
14     public static char[] reverseString(String str, int start, int end) { 15         char[] array = str.toCharArray(); 16 
17         for (int i = start; i < end / 2; i++) { 18             /* array[size - 1 - i]:下标为i值的对称下标的值 */
19             array[i] = (char) (array[i] + array[end - 1 - i]); 20             /*
21  * array[size - 1 - i] = array[i] + array[size - 1 - i] -array[size 22  * - 1 - i] 23              */
24             /* 即:array[size - 1 - i] = array[i] 下标为i的值变为i的对称下标的值 */
25             array[end - 1 - i] = (char) (array[i] - array[end - 1 - i]); 26             /* 同理 */
27             array[i] = (char) (array[i] - array[end - 1 - i]); 28  } 29         return array; 30  } 31 
32     /**
33  * 字符串指定逆置(思路:首尾元素互换,一步一步网中间逼近) 34  * 35  * @param str 36  * 字符串 37  * @param start 38  * 开始下标 39  * @param end 40  * 结束下标 41  * @return chsr数组 42      */
43     public static char[] reverseString1(String str, int start, int end) { 44         char[] array = str.toCharArray(); 45         while (start <= end) { 46             char temp = array[start]; 47             array[start] = array[end]; 48             array[end] = temp; 49             end--; 50             start++; 51  } 52         return array; 53  } 54     
55     public static void main(String[] args) { 56         String str = "abcdefgffyrhstesrt"; 57         System.out.println("转置之前:" + str); 58         char[] array = ReverseString.reverseString(str, 0, str.length()); 59         System.out.print("转置之后:"); 60         for (int i = 0; i < array.length; i++) { 61  System.out.print(array[i]); 62  } 63         char[] arr = ReverseString.reverseString1(str, 0, str.length()-1); 64  System.out.println(); 65         System.out.print("转置之后:"); 66         for (int i = 0; i < arr.length; i++) { 67  System.out.print(arr[i]); 68  } 69  } 70 
71 }

运行结果:

  

分析:法一理解起来困难一点,法二通俗易懂

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM