私が取り組んでいる製品 (25 年前の製品) は非常に大きく複雑です。それでは、簡単なシナリオで何が必要かを説明しましょう。
int
変数を宣言しました。言う、int var = 0001;
の値を取得しようとするとvar
、 が得られます1
。
さて、私の要件は、0001
メソッドの署名または戻り値の型を変更せずに、 を返すことは可能ですか?
私が取り組んでいる製品 (25 年前の製品) は非常に大きく複雑です。それでは、簡単なシナリオで何が必要かを説明しましょう。
int
変数を宣言しました。言う、int var = 0001;
の値を取得しようとするとvar
、 が得られます1
。
さて、私の要件は、0001
メソッドの署名または戻り値の型を変更せずに、 を返すことは可能ですか?
数字の桁数がわかっている場合は、使用できます
String.format("%04d", number);
int は常に 1 を返します
数字を 0 から始めないでください - Java では、数字は8 進数 (基数 8)と見なされます- 奇妙な結果が得られない限り、例えば:
001 == 1
010 == 8 // 8 進数 10 == 10 進数 8
0123 == 83 // 8 進数の 123 は 10 進数の 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);
数字の正確な長さがわかっている場合。たとえば 6.
int x = 5
String s = "";
s = ""+x;
while(s.length() < 6){
s = "0"+s;
}
これにより、000005 が出力されます。
いくつかの注意を払った後、私は有効な答えを見つけました。
DecimalFormat df=new DecimalFormat("0000");
int i=1;
i=df.format(i);
これは私のために働いた。