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

编写递归反转单词的Java程序:代码补全及功能完善问询

修复后的Java递归反转单词程序

我来帮你搞定这个程序的问题,咱们先梳理下原代码里的坑,然后给出完善后的版本:

原代码的问题点

  • 第14行编译错误:input.next()是错误写法,input是String类型,根本没有next()方法,得用你创建的Scanner对象来读取用户的Y/N选择。
  • Scanner重复实例化:每次循环都新建Scanner实例,既浪费资源还可能引发输入异常,应该把Scanner的创建移到循环外面。
  • 循环条件不严谨:原条件!tryAgain.equals("N")会让任何非N的输入(比如X、y)都继续循环,逻辑不合理,应该只在用户输入Y/y时才重试。
  • 缺少退出提示:输入N后没有输出要求的Bye!。

完善后的完整代码

package reverseword;
import java.util.Scanner;

public class ReverseWord {
    public static void main(String[] args) {
        String tryAgain = "Y";
        // 把Scanner放到循环外,避免重复创建
        Scanner sc = new Scanner(System.in);
        
        do {
            String reversedString = "";
            System.out.print("Enter string to reversed: ");
            String input = sc.nextLine();
            
            reversedString = reverseString(input);
            System.out.println("Reversed String : " + reversedString);
            
            System.out.println("Try again? enter \"Y/N\": ");
            // 用sc读取用户的选择,用nextLine避免换行符干扰
            tryAgain = sc.nextLine();
            
        } while (tryAgain.equalsIgnoreCase("Y"));
        
        // 循环结束后输出退出提示
        System.out.println("Bye!");
        // 关闭Scanner释放资源
        sc.close();
    }

    // 递归反转字符串的方法逻辑正确,无需修改
    public static String reverseString(String input) {
        if(input.isEmpty()) return input;
        return reverseString(input.substring(1)) + input.charAt(0);
    }
}

代码修改说明

  1. Scanner位置调整:将Scanner sc = new Scanner(System.in);移到do-while循环外,只创建一次实例,最后用sc.close()释放资源。
  2. 修复第14行:把tryAgain = input.next();改成tryAgain = sc.nextLine();,用正确的Scanner对象读取用户输入。
  3. 优化循环条件:用tryAgain.equalsIgnoreCase("Y")替代原条件,支持用户输入Y或y都能继续重试,输入其他内容(比如N/n、X等)都会退出循环。
  4. 添加退出提示:在循环结束后添加System.out.println("Bye!");,满足输入N时的输出要求。

运行测试示例

Enter string to reversed: lala
Reversed String : alal
Try again? enter "Y/N": Y
Enter string to reversed: hello
Reversed String : olleh
Try again? enter "Y/N": N
Bye!

内容的提问来源于stack exchange,提问作者pearl ang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:30:32