Я пытаюсь сохранить сопоставление букв с двоичным числом. Вот мои картыСохранение charcter и двоичного числа в хэш-карте
("h",001)
("i", 010)
("k",011)
("l",100)
("r", 101)
("s",110)
("t",111)
Для этой цели я создал карту хэша и сохранил пары значений ключа. Теперь я хочу отобразить соответствующее двоичное значение для данного предложения. Вот мой код для того же самого.
package crups;
import java.util.*;
public class onetimepad {
public static void main(String args[])
{
HashMap <String , Integer>hm = new HashMap <String , Integer>();
hm.put("e", 000);
hm.put("h",001);
hm.put("i", 010);
hm.put("k",011);
hm.put("l",100);
hm.put("r", 101);
hm.put("s",110);
hm.put("t",111);
String[] key = { "t" ,"r" , "s" , "r","t","l","e", "r","s","e"};
//key = t r s r t l e r s e
String[] input = {"h","e","i" ,"l","h","i","t","l","e","r"};
int[] cipher = new int[10];
System.out.println("Binary form of text is ....");
for(String s : input)
{
System.out.print(hm.get(s)+" ");
}
}
}
Когда я запускаю код, однако, отображение для буквы «я» отображается неправильно: 8
: вместо 010
. Может кто-нибудь мне рассказать, почему это происходит? Также как я могу отображать ноль infront моих чисел, поскольку они являются двоичными числами. Спасибо.
Выход:
Binary form of text is ....
1 0 8 100 1 8 111 100 0 101
хранить их в виде строк вместо чисел ("001"). – shmosel
Это интересный вводный текст, который у вас есть. –
Следующим шагом в этой проблеме является выполнение операции «xor» для двоичных чисел. если я использую их как строки, мне придется преобразовать их в int, а затем выполнить xor? Может ли быть альтернатива, так что я могу прямо хранить их как двоичные на моей карте. @ Shmosel –