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

如何利用命令行参数实现Reversal类的字符串反转功能?

命令行字符串反转的代码修正

先梳理你代码里的核心问题:

  • 数组索引越界:i初始设为input.length(),但字符串、数组的索引从0开始,最大索引是length-1,直接用i调用charAt(i)会抛出索引越界异常
  • 赋值逻辑错误:++i会让i持续增大,完全违背反转的遍历逻辑,应该从输入字符串的末尾往前读,同时往输出数组的开头往后写
  • 方法无返回值:reverseChar是void类型,无法返回反转后的结果供调用方使用
  • main方法未处理命令行参数:既没读取args参数,也没调用反转方法、输出最终结果

修正后的完整代码:

public class Reversal {
    // 修改方法为返回反转后的字符串
    static String reverseChar(String input) {
        char output[] = new char[input.length()];
        // 输入字符串从最后一位开始遍历
        int inputIndex = input.length() - 1;
        // 输出数组从第一位开始填充
        int outputIndex = 0;
        while (inputIndex >= 0) {
            output[outputIndex] = input.charAt(inputIndex);
            inputIndex--;
            outputIndex++;
        }
        return new String(output);
    }

    public static void main(String[] args) {
        // 检查是否传入命令行参数
        if (args.length == 0) {
            System.out.println("请在命令行传入需要反转的字符串");
            return;
        }
        // 处理第一个命令行参数并输出结果
        String reversedStr = reverseChar(args[0]);
        System.out.println("反转结果:" + reversedStr);
    }
}

运行步骤

  1. 编译代码:javac Reversal.java
  2. 带参数运行:java Reversal "Hello StackOverflow"
  3. 输出结果:反转结果:wolfrevOkcatS olleH

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:40:28