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

Java实现整数格式化为社会保障号码(SSN)的问题求助

问题分析与修正方案

你的代码存在两个核心问题:

  • 语法错误:toString()方法的return语句缺少闭合括号,导致编译失败。
  • 格式参数不匹配:String.format("%03d-%02d-%04d")需要3个整数参数,但你只传入了一个完整的ssNumber,运行时会抛出IllegalFormatArgumentException。

修正后的代码

public String getSSNumber() {      
    String convert = String.valueOf(ssNumber);
    return convert;
}

public String toString() {
    // 拆分9位社保号的三个部分
    int part1 = ssNumber / 1000000;    // 前3位
    int part2 = (ssNumber / 10000) % 100; // 中间2位
    int part3 = ssNumber % 10000;      // 后4位
    return " SSN: " + String.format("%03d-%02d-%04d", part1, part2, part3);
}

关键说明

  1. 数字拆分逻辑:
    • 对于9位整数ssNumber,通过除法和取模运算拆分出前3位、中间2位、后4位。
    • 例如:若ssNumber = 123456789,则part1=123,part2=45,part3=6789。
  2. 格式补零:
    • %03d表示不足3位时自动补前导零,%02d和%04d同理,确保即使输入的数字位数不足9位(比如8位的12345678),也能格式化为012-34-5678。
  3. 语法修正:补上return语句中缺失的闭合括号,确保代码能正常编译。

内容的提问来源于stack exchange,提问作者Michael Teoro Jr.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 21:57:16