import java.util.BitSet;
public class HelloWorld {
public static void main(String[] args) {
String s = "hello@^@$05oiejfcq3941[u204";
System.out.println(s);
BitSet a = stringToBitSet(s);
System.out.println(a);
s = bitSetToString(a);
System.out.println(s);
}
static String bitSetToString(BitSet a) {
int length = (a.length() + Character.SIZE - 1)
/ Character.SIZE;
char[] result = new char[length];
for (int i = 0; i < length; i++) {
BitSet character =
a.get(Character.SIZE * i,
Character.SIZE * (i + 1));
result[i] = (char)
character.toLongArray()[0];
}
return new String(result);
}
private static BitSet stringToBitSet(String s) {
BitSet a = new BitSet();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
for (int j = 0; j < Character.SIZE; j++) {
boolean bit = ((c >> j) & 1) > 0;
a.set(Character.SIZE * i + j, bit);
}
}
return a;
}
}
Comments