Java中5種方法完成String反轉。本站提示廣大學習愛好者:(Java中5種方法完成String反轉)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中5種方法完成String反轉正文
這裡引見Java中5中完成String反轉的方法。
1、數組完成String反轉
//數組完成String反轉 public String reverseByArray(){ if(str == null || str.length() == 1){ return null; } char[] ch = str.toCharArray();//字符串轉換成字符數組 for(int i = 0 ; i < ch.length/2 ; i++){ char temp = ch[i]; ch[i] = ch[ch.length-i-1]; ch[ch.length-i-1] = temp; } return new String(ch); }
2、棧完成String反轉
//用棧完成String反轉 public String reverseByStack(){ if(str == null || str.length() == 1){ return null; } Stack<Character> stack = new Stack<Character>(); char[] ch = str.toCharArray();//字符串轉換成字符數組 for (char c : ch) { stack.push(c);//每一個字符,推動棧 } for (int i = 0; i < ch.length; i++) { ch[i] = stack.pop();//移除這個客棧的頂部對象 } return new String(ch); }
3、逆序遍歷完成String反轉
//用逆序遍歷完成String反轉 public String reverseBySort(){ if(str == null || str.length() == 1){ return null; } StringBuffer sb = new StringBuffer(); for (int i = str.length() -1 ; i >= 0; i--) { sb.append(str.charAt(i));//應用StringBuffer從右往左拼接字符 } return sb.toString(); }
4、位運算完成String反轉
//應用位運算完成String反轉 public String reverseByBit() { if(str == null || str.length() == 1){ return null; } char[] ch = str.toCharArray();//字符串轉換成字符數組 int len = str.length(); for(int i= 0; i< len/ 2; i++) { ch[i]^= ch[len- 1- i]; ch[len- 1- i]^= ch[i]; ch[i]^= ch[len- 1- i]; } return new String(ch); }
5、遞歸完成String反轉
//應用遞歸完成String反轉 public String reverseByRecursive(String str){ if(str == null || str.length() == 0){ return null; } if(str.length() == 1){ return str; } else { //從下標為1開端截取字符串,在前往下標為0的字符 return reverseByRecursive(str.substring(1)) + str.charAt(0); } }
6、測試
public class Test { public static void main(String[] args) { String s = "123456"; Reverse r = new Reverse(s); System.out.println(r.reverseByArray()); System.out.println(r.reverseByStack()); System.out.println(r.reverseBySort()); System.out.println(r.reverseByBit()); System.out.println(r.reverseByRecursive(s)); } }
7、成果
8、用於String反轉的全體代碼
public class Reverse { private String str = null; public Reverse(String str){ this.str = str; } //數組完成String反轉 public String reverseByArray(){ if(str == null || str.length() == 1){ return null; } char[] ch = str.toCharArray();//字符串轉換成字符數組 for(int i = 0 ; i < ch.length/2 ; i++){ char temp = ch[i]; ch[i] = ch[ch.length-i-1]; ch[ch.length-i-1] = temp; } return new String(ch); } //用棧完成String反轉 public String reverseByStack(){ if(str == null || str.length() == 1){ return null; } Stack<Character> stack = new Stack<Character>(); char[] ch = str.toCharArray();//字符串轉換成字符數組 for (char c : ch) { stack.push(c);//每一個字符,推動棧 } for (int i = 0; i < ch.length; i++) { ch[i] = stack.pop();//移除這個客棧的頂部對象 } return new String(ch); } //用逆序遍歷完成String反轉 public String reverseBySort(){ if(str == null || str.length() == 1){ return null; } StringBuffer sb = new StringBuffer(); for (int i = str.length() -1 ; i >= 0; i--) { sb.append(str.charAt(i));//應用StringBuffer從右往左拼接字符 } return sb.toString(); } //應用位運算完成String反轉 public String reverseByBit() { if(str == null || str.length() == 1){ return null; } char[] ch = str.toCharArray();//字符串轉換成字符數組 int len = str.length(); for(int i= 0; i< len/ 2; i++) { ch[i]^= ch[len- 1- i]; ch[len- 1- i]^= ch[i]; ch[i]^= ch[len- 1- i]; } return new String(ch); } //應用遞歸完成String反轉 public String reverseByRecursive(String str){ if(str == null || str.length() == 0){ return null; } if(str.length() == 1){ return str; } else { //從下標為1開端截取字符串,在前往下標為0的字符 return reverseByRecursive(str.substring(1)) + str.charAt(0); } } }
以上這篇Java中5種方法完成String反轉就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。