如何在 Java 中反转字符串?

2025年3月30日 | 阅读 5 分钟

在 Java 中反转字符串有多种方法。我们可以使用 StringBuffer、StringBuilder、迭代等方法反转字符串。让我们看看在 Java 中反转字符串的方法。

1) 使用 StringBuilder / StringBuffer 类

文件: StringFormatter.java

文件: TestStringFormatter.java

输出

nahk si eman ym
lawsiaj oonos ma I

2) 使用反向迭代

文件: StringFormatter.java

文件: TestStringFormatter.java

输出

nahk si eman ym
lawsiaj oonos ma I

文件名: StringReversal.java

输出

Original: Hello, world!
Reversed with StringBuilder: !dlrow ,olleH
Reversed with char array: !dlrow ,olleH
Reversed with recursion: !dlrow ,olleH

示例 2

文件名: StringReversalExample.java

输出

Original: Java Programming
Reversed with StringBuilder: gnimmargorP avaJ
Reversed with char array: gnimmargorP avaJ
Reversed with recursion: gnimmargorP avaJ

Java 中反转字符串的 MCQ

1. 在 Java 中,使用递归反转字符串的时间复杂度是多少?

  1. O(n)
  2. O(log n)
  3. O(n^2)
  4. O(2^n)
 

答案:a)

解释: 使用递归反转字符串的时间复杂度通常为 O(n),其中 n 是字符串的长度。


2. 在 Java 中,哪种数据结构可以用于在不使用任何内置方法的情况下反转字符串?

  1. Stack
  2. Queue
  3. LinkedList
  4. TreeMap
 

答案:a)

解释: 使用堆栈,您可以将字符串的每个字符推入堆栈,然后弹出它们以反转字符串。


3. 使用 StringBuilder 的 reverse() 方法反转字符串“Java is fun”的输出是什么?

  1. Java is fun
  2. nuf si avaJ
  3. nuf si Java
  4. fun is Java
 

答案:b)

解释: StringBuilder 的 reverse() 方法反转字符串“Java is fun”的字符。


4. 以下哪种方法不适合就地反转字符串?

  1. 递归
  2. 迭代
  3. StringBuilder 的 reverse() 方法
  4. StringBuffer 的 reverse() 方法
 

答案:c)

解释: StringBuilder 的 reverse() 方法返回一个新的反转字符串,它不会就地反转字符串。


5. 在 Java 中使用递归反转字符串有什么好处?

  1. 与其他方法相比,递归消耗更少的内存。
  2. 递归比迭代方法更快。
  3. 递归允许轻松并行化。
  4. 递归简化了代码并提高了可读性。
 

答案:d)

解释: 递归可以为反转字符串提供简洁明了的解决方案,从而提高代码的可读性和可维护性。


下一主题