Heim >Java >javaLernprogramm >5 Möglichkeiten, eine String-Umkehr in Java zu erreichen

5 Möglichkeiten, eine String-Umkehr in Java zu erreichen

高洛峰
高洛峰Original
2017-01-22 09:59:201735Durchsuche

Hier finden Sie eine Einführung in die Implementierung der String-Umkehr in Java 5.

1. Array implementiert String-Umkehr

//数组实现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. Stack implementiert String-Umkehr

//用栈实现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 um eine String-Umkehr zu erreichen

4. Bitoperation zur Implementierung der String-Umkehr

//用逆序遍历实现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();
  }

5. Rekursion zur Implementierung der String-Umkehr

//使用位运算实现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);
  }

6. Test

//使用递归实现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);
    }
  }

7. Ergebnis

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

8. Alle Codes für die String-Umkehr 5 Möglichkeiten, eine String-Umkehr in Java zu erreichen

Die 5 Möglichkeiten, dies zu erreichen String-Umkehrungen sind alle vom Herausgeber geteilten Inhalte. Ich hoffe, dass sie Ihnen eine Referenz geben können, und ich hoffe auch, dass Sie die chinesische PHP-Website unterstützen.

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);
    }
  }
}
Weitere Artikel zu 5 Möglichkeiten zur String-Umkehr in Java finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn