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

Java实现Vehicle类模拟车辆移动 按位置生成对应数量空格

现有代码问题梳理

  • 未实现要求的无参构造方法Vehicle()
  • 现有带参构造方法逻辑错误:构造方法无返回值无需return,且未按照要求校验传入的loc参数范围赋值
  • forward()、backward()边界判断逻辑错误,会导致位置超出-20~20的范围
  • toString()未实现空格加@的输出逻辑

修正后的完整Vehicle类代码

public class Vehicle
{
    private int location;

    // 无参构造方法
    public Vehicle() {
        this.location = 0;
    }

    // 带参构造方法
    public Vehicle(int loc) {
        if (loc >= -20 && loc <= 20) {
            this.location = loc;
        } else {
            this.location = 0;
        }
    }

    public void forward() {
        // 只有当前位置小于20才能前移,避免超出上限
        if (location < 20) {
            location++;
        }
    }

    public void backward() {
        // 只有当前位置大于-20才能后移,避免超出下限
        if (location > -20) {
            location--;
        }
    }

    public int getLocation() {
        return location;
    }

    public String toString() {
        // 空格数计算规则:当前位置 - (-20) = location + 20,和示例要求完全匹配
        int spaceCount = location + 20;
        return " ".repeat(spaceCount) + "@";
    }
}

低版本JDK兼容方案

如果你的JDK版本低于11,不支持String.repeat()方法,可以把toString()替换为循环拼接实现:

public String toString() {
    int spaceCount = location + 20;
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < spaceCount; i++) {
        sb.append(" ");
    }
    sb.append("@");
    return sb.toString();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:54:06