•2 min read
Java Practice Tasks
This week we continue our coding challenges series.
Convert Decimal to Hex
Hexadecimal representation of an integer value can be done by performing the following steps:
- Carry out modulo division on the number by the base (which is 16 in this case). The result (remainder) will specify the hexadecimal character.
- Divide the number by 16
- If the result of the division is not 0, Jump to #1
There’s one more step left: You’ll need to reverse the characters.
public String convertDecToHex(int number) {
String hexChars = "0123456789ABCDEF";
StringBuffer sb = new StringBuffer();
int i = 0;
do {
sb.append(hexChars.charAt(number % 16));
number /= 16;
} while (number > 0);
return "0x" + sb.reverse().toString();
}
Result:
jshell> convertDecToHex(255)
$3 ==> "0xFF"
Count the Duplicates
Another simple task is count the individual characters in a word.
public void countDuplicates(String word) {
if (word == null || word.isEmpty()) {
return;
}
Map<Character, Integer> characterMap = new HashMap<>();
for (int i = 0; i < word.length() - 1; i++) {
Integer count = characterMap.get(word.charAt(i));
if (count == null) {
characterMap.put(word.charAt(i), 1);
} else {
characterMap.put(word.charAt(i), count + 1);
}
}
for (Character c : characterMap.keySet()) {
int cnt = characterMap.get(c);
if (cnt > 1) {
System.out.println(c + " " + characterMap.get(c));
}
}
}
Result:
jshell> countDuplicates("hello world")
l 3
o 2
Fibonacci Series
public int fibonacci(int n) {
if (n == 0 || n == 1)
return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
Result:
jshell> fibonacci(7)
$10 ==> 21