Java如何逐字反转字符串?

您可能已经看到了如何使用 StringBuffer、 Apache Commons Lang 库中的 StringUtils 或 CharacterIterator 反转字符串。

在此示例中,您将看到可用于逐字反转字符串的另一种方法。在这里,我们使用StringTokenizer和Stack类。

package org.nhooo.example.util;

import java.util.Stack;
import java.util.StringTokenizer;

public class ReverseStringByWord {
    public static void main(String[] args) {
        // 我们将反转的字符串
        String text = "Jackdaws love my big sphinx of quartz";

        //我们使用StringTokenize来获取字符串的每个单词。你可以试试
        // 如果需要,使用String.split()方法。
        StringTokenizer st = new StringTokenizer(text, " ");

        // 为了扭转它,我们可以使用实现LIFO的Stack类
        // (后进先出)。
        Stack<String> stack = new Stack<>();
        while (st.hasMoreTokens()) {
            stack.push(st.nextToken());
        }

        // 以相反的顺序打印每个单词
        while (!stack.isEmpty()) {
            System.out.print(stack.pop() + " ");
        }
    }
}