我正在研发的产品(25年的产品)非常庞大和复杂。因此,让我在简单的场景中解释我想要的东西:
我已声明int
变量。说,int var = 0001;
当我们尝试检索var
的值时,我们会得到1
。
现在,我的要求是,是否可以返回0001
,而无需更改方法的签名或返回类型?
答案 0 :(得分:7)
如果你知道你可以使用多少位数
String.format("%04d", number);
int将总是返回1
答案 1 :(得分:7)
您无法将0001
存储为int
。
int
存储号码,即1
。您需要格式。
当你隐含地“{1}}”int
“检索”它时;这就是你需要告诉Java如何格式化它的地方。
你还没有真正提供任何信息,但我想你总是需要4个数字,在这种情况下,格式掩码Integer.toString()
应该可以解决问题。
0000
输出:
public static void main(String[] args) throws Exception {
final int i = 1;
final DecimalFormat decimalFormat = new DecimalFormat("0000");
System.out.println(decimalFormat.format(i));
}
答案 2 :(得分:1)
不要从0开始编号 - 在Java中他们认为是八进制(基数为8) - 除非你有奇怪的结果,例如:
001 == 1
010 == 8 //八进制10 ==十进制8
0123 == 83 //八进制123是十进制83
08 - error! This's not an octal value
等
只要您想打印出数字
,就可以使用格式 int number = 1; // <- Just a decimal integer
String result = String.form("My number is %04d in dddd format", number);
答案 3 :(得分:0)
两种可能性:
答案 4 :(得分:0)
在零之前将int视为Java中的八进制。因此,您不能将0001存储为int。
答案 5 :(得分:-1)
如果您知道号码的确切长度。例如6。
int x = 5
String s = "";
s = ""+x;
while(s.length() < 6){
s = "0"+s;
}
这将打印000005。
答案 6 :(得分:-3)
经过一番了解后,我发现了一个有效的答案。
DecimalFormat df=new DecimalFormat("0000");
int i=1;
i=df.format(i);
这对我有用。