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

Java实现字符串反转以'-'分隔时报类声明错误如何解决

错误产生原因

这是Java的基础语法强制规定:被public修饰的顶层类,类名必须和其所在的源代码文件名称完全一致(大小写也需要匹配)。你当前把代码存放在了Main.java文件中,但代码里的公共类名为ClassSet15,两者不匹配,因此编译器抛出该错误。

修复方案

二选一即可解决编译问题:

  • 方案1:修改文件名
    将存放代码的Main.java文件重命名为ClassSet15.java,和公共类名完全匹配即可正常编译。
  • 方案2:修改类名
    把代码中第三行的公共类定义改为public class Main {,和现有文件名Main.java匹配即可。
额外逻辑问题补充

你当前的代码解决编译问题后,运行会触发索引越界错误,因为插入-的逻辑存在问题:循环过程中调用insert会让StringBuffer的长度动态增加,你用固定的2*s1.length()-1作为循环边界,且直接用当前循环的i作为插入下标,会导致索引超出当前字符串长度。
可以优化为如下逻辑:

public static String reversedAndParsedString(String s1){
    StringBuffer sb = new StringBuffer(s1).reverse();
    for (int i = 1; i < sb.length(); i += 2) {
        sb.insert(i, '-');
    }
    return sb.toString();
}

这样每插入一个-,下次插入位置向后跳2位,不会出现索引错误,也能得到符合要求的输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:45:03