web-dev-qa-db-ja.com

Java任意の整数を4桁に変換

これは簡単な質問のようです。私の課題の1つは、基本的に軍事形式(12002200など)で時間をクラスに送信します。

クラスで整数を受け取ったときに、整数を4桁に強制的に変換するにはどうすればよいですか?たとえば、送信される時刻が300の場合、0300に変換する必要があります。

編集:値を比較する必要があったので、問題のためにこれは必要なかったことがわかりました。ありがとう

19
Cody

それと同じくらい簡単です:

_String.format("%04d", 300)
_

分前の時間を比較する場合:

_int time1 =  350;
int time2 = 1210;
//
int hour1 = time1 / 100;
int hour2 = time2 / 100;
int comparationResult = Integer.compare(hour1, hour2);
if (comparationResult == 0) {
    int min1 = time1 % 100;
    int min2 = time2 % 100;
    comparationResult = Integer.compare(min1, min2);
}
_

注意:

Integer.compare(i1, i2)はJava 1.7に追加されました。以前のバージョンでは、Integer.valueOf(i1).compareTo(i2)または

_int comparationResult;
if (i1 > i2) {
    comparationResult = 1;
} else if (i1 == i2) {
    comparationResult = 0;
} else {
    comparationResult = -1;
}
_
38

String a = String.format("%04d", 31200).substring(0, 4);
/**Output: 3120 */ 
System.out.println(a);


String b = String.format("%04d", 8).substring(0, 4);
/**Output: 0008 */
System.out.println(b);
0
黄壮壮