如何在 Java 中反转字符串

Mohammad Irfan 2023年10月12日
  1. 使用 Java 中的 reverse() 方法反转字符串
  2. 在 Java 中使用自定义代码反转字符串
  3. 使用 Java 中的 append() 方法反转字符串
  4. 使用 Java 中的递归来反转字符串
  5. 使用 Java 中的 Stack 来反转字符串
如何在 Java 中反转字符串

本教程介绍了如何在 Java 中反转字符串,并列举了一些示例代码来了解它。

反转字符串有几种方法,比如 reverse()sorted()parallelSort() 等方法。我们来看看例子。

使用 Java 中的 reverse() 方法反转字符串

在这个例子中,我们使用 StringBuilder 类的 reverse() 方法以相反的顺序得到字符串,我们使用 toString() 方法从 StringBuilder 对象中得到字符串对象。请看下面的例子。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder strb = new StringBuilder(str);
    str = strb.reverse().toString();
    System.out.println(str);
  }
}

输出:

DelfStack
kcatSfleD

在 Java 中使用自定义代码反转字符串

如果你不想使用内置方法,那就使用自定义代码,使用循环交换字符串字符,并将它们收集到一个字符数组中,进一步转换为字符串。请看下面的例子。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    char[] ch = str.toCharArray();
    int begin = 0;
    int end = ch.length - 1;
    char temp;
    while (end > begin) {
      temp = ch[begin];
      ch[begin] = ch[end];
      ch[end] = temp;
      end--;
      begin++;
    }
    str = new String(ch);
    System.out.println(str);
  }
}

输出:

DelfStack
kcatSfleD

使用 Java 中的 append() 方法反转字符串

这是 Java 中另一种反转字符串的方法。在这里,我们在 for 循环中使用 charAt()append() 方法来获取和存储 chars 到 StringBuilder 对象中。请看下面的例子。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder dest = new StringBuilder();
    for (int i = (str.length() - 1); i >= 0; i--) {
      dest.append(str.charAt(i));
    }
    System.out.println(dest);
  }
}

输出:

DelfStac
kcatSfleD

使用 Java 中的递归来反转字符串

递归是一种技术,在这种技术中,一个函数一次又一次地调用自己,直到达到基本条件。我们可以使用递归来反转字符串,如下面的例子。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    String reverseStr = reverseIt(str, str.length() - 1);
    System.out.println(reverseStr);
  }
  static String reverseIt(String str, int index) {
    if (index == 0) {
      return str.charAt(0) + "";
    }
    char letter = str.charAt(index);
    return letter + reverseIt(str, index - 1);
  }
}

输出:

DelfStack
kcatSfleD

使用 Java 中的 Stack 来反转字符串

我们可以使用 Stack 类来反转字符串。我们使用 Stack 类的 push() 方法将字符收集到堆栈中,然后使用 pop() 方法将存储的字符按相反的顺序取回。请看下面的例子。

import java.util.Stack;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    Stack<Character> stack = new Stack<>();
    for (int i = 0; i < str.length(); i++) {
      stack.push(str.charAt(i));
    }
    StringBuilder strb = new StringBuilder();
    while (!stack.empty()) {
      strb.append(stack.pop());
    }
    System.out.println(strb);
  }
}

输出:

DelfStack
kcatSfleD

相关文章 - Java String