You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现字符串反转返回原词加反转结果问题如何修复

Java自定义字符串反转方法问题修复

你代码的问题出在StringBuilder的初始化逻辑:调用new StringBuilder(originalWord)时,会直接把原字符串的内容写入StringBuilder的初始缓冲区,后续循环又把原字符串倒序追加了一遍,最终结果就是「原字符串+倒序原字符串」,输入"no"返回"noon"就是这个原因。

修改方案如下:

  • 把StringBuilder的初始化语句改为无参构造,或者传入原字符串长度作为初始容量(性能更优,避免后续自动扩容开销),不要传入原字符串本身
  • 可选优化:append方法支持直接传入char类型参数,不需要额外调用Character.toString做类型转换

修改后完整代码:

public class Palindrome
{
    public static String reversed(String originalWord)
    {
        int lengthOfWord = originalWord.length();
        // 初始化空StringBuilder,指定容量为原字符串长度
        StringBuilder reversedWordBuilder = new StringBuilder(lengthOfWord);

        for (int currentChar = lengthOfWord-1; currentChar >= 0; currentChar--)
        {
            // 直接追加字符即可,无需转字符串
            reversedWordBuilder.append(originalWord.charAt(currentChar));
        }
        
        return reversedWordBuilder.toString();
    }
}

如果不需要手动实现倒序逻辑,JDK自带的StringBuilder#reverse()方法可以直接实现反转,代码更简洁:

public static String reversed(String originalWord) {
    return new StringBuilder(originalWord).reverse().toString();
}

内容的提问来源于stack exchange,提问作者rebekah.ann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:24:03