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

Java字符串反转代码报错求助:排查问题并寻求解决方案

你的Java字符串反转代码的问题分析与修复方案

我来帮你拆解代码里的每一个问题,一步步把它改对!

代码里的核心错误点

  • 方法嵌套定义违规:你把Reverse方法直接写在了main方法内部,Java不允许在方法里嵌套定义另一个方法,必须把Reverse放到RevString类的层级,和main方法同级。
  • 方法语法与修饰符错误:Reverse方法的定义缺了返回值类型(这里不需要返回值,应该加void);另外main是静态方法,直接调用非静态方法会报错,所以要把Reverse改成static,或者在main里实例化类对象再调用。
  • 字符串字符访问错误:Java里不能用数组下标str[i]直接取字符串的字符,必须用str.charAt(i)方法来获取指定索引的字符。
  • 变量未初始化:String rev;只声明了变量但没赋值,直接执行rev = str[i] + rev会触发空指针异常,得初始化为空字符串String rev = "";。
  • 循环逻辑双重错误:
    1. i <= len会导致索引越界——字符串的下标范围是0到len-1,超出这个范围会报错;
    2. 从i=0开始遍历的话,拼接出来的结果是原字符串的顺序,不是反转,应该从最后一个字符(索引len-1)往前遍历到0。

修正后的完整代码

public class RevString {
    // 将Reverse方法移到类层级,改为static方便main直接调用
    public static void Reverse(String str) {
        int len = str.length();
        // 初始化rev为空字符串,避免空指针
        String rev = "";
        // 从最后一个字符开始向前遍历
        for (int i = len - 1; i >= 0; i--) {
            // 用charAt获取字符,拼接到rev中
            rev = rev + str.charAt(i);
        }
        System.out.println(rev);
    }

    public static void main(String[] args) {
        // 直接调用静态的Reverse方法
        Reverse("Canyon");
    }
}

运行这段代码后,会输出反转后的结果:ynanoC。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:27:27