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

如何在Java的toString方法中实现degree与university对齐排版?

解决Degree与University对齐问题

你的问题出在固定空格缩进——年份字符串长度不固定(比如"2023"是4位,"2019 to 2023"是11位),固定数目的空格自然没法让degree始终对齐到university的开头。

直接修改toString方法,动态计算缩进长度即可:

方案一:手动计算空格

@Override
public String toString() {
    // 把year转成字符串(如果year是数字类型,用String.valueOf(year))
    String yearStr = year;
    // 计算缩进长度:年份长度 + 年份与university之间的8个空格
    int indentLength = yearStr.length() + 8;
    // 生成对应长度的空格字符串
    String degreeIndent = " ".repeat(indentLength);
    
    return "Education" + System.lineSeparator() +
           yearStr + "        " + university + System.lineSeparator() +
           degreeIndent + degree;
}

方案二:用String.format简化

@Override
public String toString() {
    String yearStr = String.valueOf(year);
    // 用格式化字符串动态指定缩进宽度
    return String.format("Education%n%s        %s%n%" + (yearStr.length() + 8) + "s",
            yearStr, university, degree);
}

原理说明

不管year是短字符串还是长字符串,我们都先计算它的长度,再加上年份和university之间的8个空格,让degree前面的空格总长度等于「年份字符串长度+分隔空格数」,这样degree就会精准对齐到university的起始位置,完美匹配你要的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:08:16