This seems like an easy question. One of my assignments basically sends a time in military format (like 1200
, 2200
, etc) to my class.
How can I force the integer to be converted to 4 digits when it's received by my class? For example if the time being sent is 300
, it should be converted to 0300
.
EDIT: it turns out i didnt need this for my problem as i just had to compare t开发者_JAVA技巧he values. Thanks
As simple as that:
String.format("%04d", 300)
For comparing hours before minutes:
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);
}
Note:
Integer.compare(i1, i2)
has been added in Java 1.7, for previous version you can either use Integer.valueOf(i1).compareTo(i2)
or
int comparationResult;
if (i1 > i2) {
comparationResult = 1;
} else if (i1 == i2) {
comparationResult = 0;
} else {
comparationResult = -1;
}
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);
精彩评论