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 the values. Thanks
String pin = obj. nextLine(); To check if this pin contains 4 digits, we can use the regex \d{4} .
You don't need to convert int to String . Just use % 10 to get the last digit and then divide your int by 10 to get to the next one. int temp = test; ArrayList<Integer> array = new ArrayList<Integer>(); do{ array. add(temp % 10); temp /= 10; } while (temp > 0);
You can convert a number into String and then you can use toCharArray() or split() method to separate the number into digits. String number = String. valueOf(someInt); char[] digits1 = number. toCharArray(); // or: String[] digits2 = number.
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); }
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With