国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中5種方式實現(xiàn)String反轉

2019-11-26 14:07:19
字體:
來源:轉載
供稿:網友

這里介紹Java中5中實現(xiàn)String反轉的方式。

一、數(shù)組實現(xiàn)String反轉

//數(shù)組實現(xiàn)String反轉  public String reverseByArray(){    if(str == null || str.length() == 1){      return null;    }    char[] ch = str.toCharArray();//字符串轉換成字符數(shù)組    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);  }

二、棧實現(xiàn)String反轉

//用棧實現(xiàn)String反轉  public String reverseByStack(){    if(str == null || str.length() == 1){      return null;    }    Stack<Character> stack = new Stack<Character>();    char[] ch = str.toCharArray();//字符串轉換成字符數(shù)組    for (char c : ch) {      stack.push(c);//每個字符,推進棧    }    for (int i = 0; i < ch.length; i++) {      ch[i] = stack.pop();//移除這個堆棧的頂部對象    }    return new String(ch);  }

三、逆序遍歷實現(xiàn)String反轉

//用逆序遍歷實現(xiàn)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();  }

四、位運算實現(xiàn)String反轉

//使用位運算實現(xiàn)String反轉  public String reverseByBit() {     if(str == null || str.length() == 1){      return null;    }    char[] ch = str.toCharArray();//字符串轉換成字符數(shù)組    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);  }

五、遞歸實現(xiàn)String反轉

//使用遞歸實現(xiàn)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);    }  }

六、測試

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));      }}

七、結果

八、用于String反轉的全部代碼

public class Reverse {  private String str = null;    public Reverse(String str){    this.str = str;  }    //數(shù)組實現(xiàn)String反轉  public String reverseByArray(){    if(str == null || str.length() == 1){      return null;    }    char[] ch = str.toCharArray();//字符串轉換成字符數(shù)組    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);  }  //用棧實現(xiàn)String反轉  public String reverseByStack(){    if(str == null || str.length() == 1){      return null;    }    Stack<Character> stack = new Stack<Character>();    char[] ch = str.toCharArray();//字符串轉換成字符數(shù)組    for (char c : ch) {      stack.push(c);//每個字符,推進棧    }    for (int i = 0; i < ch.length; i++) {      ch[i] = stack.pop();//移除這個堆棧的頂部對象    }    return new String(ch);  }  //用逆序遍歷實現(xiàn)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();  }  //使用位運算實現(xiàn)String反轉  public String reverseByBit() {     if(str == null || str.length() == 1){      return null;    }    char[] ch = str.toCharArray();//字符串轉換成字符數(shù)組    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);  }  //使用遞歸實現(xiàn)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種方式實現(xiàn)String反轉就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 保德县| 体育| 上高县| 清徐县| 东台市| 顺昌县| 高碑店市| 峨眉山市| 惠东县| 泊头市| 崇明县| 云龙县| 普洱| 威海市| 荣成市| 三都| 屏山县| 敦煌市| 绥宁县| 巴中市| 长顺县| 山东| 汽车| 武隆县| 女性| 黔西县| 三原县| 通河县| 永胜县| 永登县| 文化| 阿克苏市| 萍乡市| 高安市| 无为县| 句容市| 田东县| 新竹县| 兰西县| 雷州市| 桐梓县|