Очень странно, что не принимает решение.. почему?
package com.javarush.task.task39.task3903;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.BitSet;
/*
Неравноценный обмен
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please type in a number: ");
long number = Long.parseLong(reader.readLine());
System.out.println("Please type in first index: ");
int i = Integer.parseInt(reader.readLine());
System.out.println("Please type in second index: ");
int j = Integer.parseInt(reader.readLine());
System.out.println("The result of swapping bits is " + swapBits(number, i, j));
}
public static long swapBits(long number, int i, int j) {
//System.out.println(Long.toBinaryString(number));
String num = Long.toBinaryString(number);
if(num.codePointAt(num.length()-1-i)!=num.codePointAt(num.length()-1-j)){
BitSet bitSet = BitSet.valueOf(new long[]{number});
bitSet.flip(i);
bitSet.flip(j);
number = bitSet.toLongArray()[0];
//System.out.println(Long.toBinaryString(number));
}
return number;
}
}