【发布时间】:2014-02-12 06:16:56
【问题描述】:
我创建了一个学生注册项目,我需要为那些在我的网站上注册的人自己提供注册号。我的注册 ID 应该是 ABC0000001 等等。我尝试了以下代码来生成注册号。
for(int i=0000001;i<3;i++){
System.out.println("ABC"+i);
}
但我得到的输出为 ABC1 ABC2 ABC3。这不是必需的。请指教。
【问题讨论】:
我创建了一个学生注册项目,我需要为那些在我的网站上注册的人自己提供注册号。我的注册 ID 应该是 ABC0000001 等等。我尝试了以下代码来生成注册号。
for(int i=0000001;i<3;i++){
System.out.println("ABC"+i);
}
但我得到的输出为 ABC1 ABC2 ABC3。这不是必需的。请指教。
【问题讨论】:
数字没有重要的前导零。 (没关系,代码实际上在 Java 中使用 八进制 数字文字。)
参见String.format 和Format Syntax。特别是,'0' flag、width 修饰符和 'd'(十进制整数)转换在这里很有用。
for(int i=1; i<3; i++){
// % - start of format
// 0 - 0-pad the result
// 7 - set result width to 7 characters wide
// d - display as decimal integer
String id = String.format("ABC%07d", i);
System.out.println(id);
}
【讨论】:
d 整数转换“可应用于 Java 整数类型:byte、Byte、short、Short、int 和 Integer、long、Long 和 BigInteger”(参见转换部分格式语法,上面链接)。要显示浮点数,请使用f 之类的浮点转换之一,或者在将其作为参数传递之前将其转换为整数类型。
这样做
for(int i=1;i<3;i++){
System.out.println("ABC00000"+i);
}
【讨论】: