gpt4 book ai didi

java - 使用 String.format 格式化 SSN

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:07 25 4
gpt4 key购买 nike

我目前正在使用随机生成器为我生成 9 位数字。我目前正在尝试在 java 中使用 String.format 来打印像 XXX-XX-XXXX 这样的随机数,就像社会保险号一样。我根本做不到,我不知道该怎么做。我正在使用模数,似乎我的填充已关闭或者我完全错了。问题是我必须使用模数。非常感谢任何指向我正确方向的帮助,谢谢。我正在尝试修复 ID。

public  String toString (){

System.out.printf("%d\n",ID);

return String.format("First Name: %12s LastName %12s ID: %03d-%02d-%04d ", firstName, lastName,ID%1000,ID%10000, ID%000001000);

}
}

最佳答案

基本上你需要两个步骤而不是一个:

  1. 将数字除以 10^X 以删除最后的 X 位。 (N/10^X)
  2. 获取对 10^Y 取模的数字以获取最后的 Y 位。 (N % 10^Y)

修改后的代码

public static int getDigits(int num, int remove, int take) {
return (num / (int)Math.pow(10, remove)) % (int)Math.pow(10, take);
}

public String toString() {
return String.format("First Name: %12s LastName %12s ID: %03d-%02d-%04d ",
firstName, lastName,
getDigits(ID, 6, 3), getDigits(ID, 4, 2), getDigits(ID, 0, 4));
}

替代解决方案

将数字转换为字符串并使用 String.substring切割相关部分

public String toString() {
String IdStr = String.valueOf(ID);
return String.format("First Name: %12s LastName %12s ID: %03d-%02d-%04d ",
firstName, lastName,
IdStr.substring(0, 3), IdStr.substring(3, 5), IdStr.substring(5, 9));
}

关于java - 使用 String.format 格式化 SSN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41927323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com