在Java中反转字符串的最有效算法是什么?

2022-09-01 02:13:43

在Java中反转字符串的最有效方法是什么?我应该使用某种异或运算符吗?简单的方法是将所有字符放在一个堆栈中,然后再次将它们放回字符串中,但我怀疑这是一种非常有效的方法。

请不要告诉我在Java中使用一些内置函数。我感兴趣的是学习如何使用它来不使用高效的函数,但不知道它为什么有效或它是如何构建的。


答案 1

你说你想知道最有效的方法,你不想知道一些标准的内置方法来做到这一点。然后我对你说:RTSL(阅读源代码,卢克):

查看 AbstractStringBuilder#reverse 的源代码,它由 StringBuilder#reverse 调用。我敢打赌,它做了一些你不会考虑过的强大反向操作的东西。


答案 2

以下内容不涉及 UTF-16 代理项对。

public static String reverse(String orig)
{
    char[] s = orig.toCharArray();
    int n = s.length;
    int halfLength = n / 2;
    for (int i=0; i<halfLength; i++)
    {
        char temp = s[i];
        s[i] = s[n-1-i];
        s[n-1-i] = temp;
    }
    return new String(s);
}