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反轉就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。