diff options
Diffstat (limited to 'challenge-120')
| -rw-r--r-- | challenge-120/ziameraj16/README.md | 14 | ||||
| -rw-r--r-- | challenge-120/ziameraj16/java/SwapOddEvenBits.java | 23 |
2 files changed, 30 insertions, 7 deletions
diff --git a/challenge-120/ziameraj16/README.md b/challenge-120/ziameraj16/README.md index 089adc27bb..7231130610 100644 --- a/challenge-120/ziameraj16/README.md +++ b/challenge-120/ziameraj16/README.md @@ -1,22 +1,22 @@ -# Swap Nibbles +# Swap Odd Even Bits ## Java Solution To compile the code run ```java -javac SwapNibbles.java +javac SwapOddEvenBits.java ``` To run ```java -java SwapNibbles +java SwapOddEvenBits ``` ### Example ```bash -/perlweeklychallenge-club/challenge-119/ziameraj16/java$ javac SwapNibbles.java -/perlweeklychallenge-club/challenge-119/ziameraj16/java$ java SwapNibbles +/perlweeklychallenge-club/challenge-120/ziameraj16/java$ javac SwapOddEvenBits.java +/perlweeklychallenge-club/challenge-120/ziameraj16/java$ java SwapOddEvenBits Enter the number 101 -86 -/perlweeklychallenge-club/challenge-119/ziameraj16/java$ java SwapNibbles +154 +/perlweeklychallenge-club/challenge-120/ziameraj16/java$ java SwapOddEvenBits Enter the number 18 33 diff --git a/challenge-120/ziameraj16/java/SwapOddEvenBits.java b/challenge-120/ziameraj16/java/SwapOddEvenBits.java new file mode 100644 index 0000000000..115493de32 --- /dev/null +++ b/challenge-120/ziameraj16/java/SwapOddEvenBits.java @@ -0,0 +1,23 @@ +import java.util.Scanner; + +public class SwapOddEvenBits { + + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + System.out.println("Enter the number"); + int number = scanner.nextInt(); + System.out.println(swap(number)); + } + + public static int swap(int number) { + final String binaryString = Integer.toBinaryString(number); + String formattedString = String.format("%0"+ (8 - binaryString.length() ) + "d%s", 0 , binaryString); + StringBuilder sb = new StringBuilder(formattedString); + for (int i = 0; i < 7; i += 2) { + char temp = formattedString.charAt(i); + sb.replace(i, i + 1, String.valueOf(formattedString.charAt(i + 1))); + sb.replace(i + 1, i + 2, String.valueOf(temp)); + } + return Integer.parseInt(sb.toString(), 2); + } +} |
