【发布时间】:2017-01-11 03:29:10
【问题描述】:
我正在制作一个猜测用户生日的数学程序。
用户输入一个数字让我们说:75622,我从中减去一个数字来得到生日,在这种情况下是 42682 -- 04/26/82
我希望能够将该整数转换为字符串,然后在月、日和年之间添加正斜杠。如果它只有 5 位而不是 6,还添加 0(因为月份是1-9)。
我知道如何使用 Integer.toString(int) 将其转换为字符串,但我不知道如何插入正斜杠和零。
谢谢!
【问题讨论】:
我正在制作一个猜测用户生日的数学程序。
用户输入一个数字让我们说:75622,我从中减去一个数字来得到生日,在这种情况下是 42682 -- 04/26/82
我希望能够将该整数转换为字符串,然后在月、日和年之间添加正斜杠。如果它只有 5 位而不是 6,还添加 0(因为月份是1-9)。
我知道如何使用 Integer.toString(int) 将其转换为字符串,但我不知道如何插入正斜杠和零。
谢谢!
【问题讨论】:
如果您只想将int 转换为String(带有前导0),您可以使用String.format like
int num = 42682;
String s = String.format("%06d", num);
然后您可以使用另一个 String.format 和 String.substring 来构建您想要的输出,例如
String output = String.format("%s/%s/%s", s.substring(0, 2),
s.substring(2, 4), s.substring(4));
System.out.println(output);
哪些输出(根据要求)
04/26/82
【讨论】:
printf("%02d/%02d/%02d", num / 10000, num / 100 % 100, num % 100)
请在下面找到答案:
public class CreateDateFromNumber {
public static void main(String[] args) {
int number = 42682;
System.out.println(getDate(number));
}
public static String getDate(int number) {
String numberStr = Integer.toString(number);
String outputStr = "";
if (numberStr.length() != 5 && numberStr.length() != 6) {
throw new IllegalArgumentException(
"Number should be length of 5 or 6");
}
if (numberStr.length() == 5) {
numberStr = "0" + numberStr;
}
int var0 = 0;
while (var0 < numberStr.length()) {
String var1 = numberStr.substring(var0, var0 + 2);
outputStr = outputStr + var1;
if (var0 + 2 < numberStr.length()) {
outputStr = outputStr + "/";
}
var0 = var0 + 2;
}
return outputStr;
}
}
【讨论】: