为什么我得到的是原始词加上反向词?

Why am I getting the original word plus the reverse word?

我的 return 输入“否”显示为“中午” 我看到它在哪里将原始单词添加到 StringBuilder。我如何让它不这样做,并且只将字符添加到一个空的 StringBuilder,相反?

public class Palindrome
{
    public static String reversed(String originalWord)
    {
        int lengthOfWord = originalWord.length();
        StringBuilder reversedWordBuilder = new StringBuilder(originalWord);

        for (int currentChar = lengthOfWord-1; currentChar >= 0; currentChar--)
        {
            reversedWordBuilder.append(Character.toString(originalWord.charAt(currentChar)));
        }
        
        return reversedWordBuilder.toString();
    }
}

您正在用 originalWord 本身初始化 StringBuilder:

StringBuilder reversedWordBuilder = new StringBuilder(originalWord);

所以它的初始值已经是“no”,然后你将反转的值附加到它上面。您应该使用空构造函数初始化它,例如:

StringBuilder reversedWordBuilder = new StringBuilder();

然后在循环中执行您的逻辑。

由于您已经使用了 StringBuilder,因此您可以在一个衬里中执行以下操作:

public static String reversed(String originalWord) {

    return new StringBuilder(originalWord).reverse().toString();
}