Tenho que somar cada caracter, sendo que qdo terminar o caracter da chave, volta ao primeiro caratcer para continuar o processo até terminar os caracteres do texto.
Tenho que somar cada caracter, sendo que qdo terminar o caracter da chave, volta ao primeiro caratcer para continuar o processo até terminar os caracteres do texto.
Somar bits ou bytes ?
Vc pode ler um array de byte que é seu texto e um outro que é sua chave e fazer essa soma ai…
A classe String tem o método getBytesArray()
Dieval_Guizelini
hehe
eu interpretei que eram para somar os “chars” na realidade, uma vez que a entrada é String, mas poderia ser convertido para bytes…
Estou disponibilizando um código que transforma uma string em uma string de bits. Faço isso convertendo cada char da string original para o valor em binário deste char e somando add em uma string.
String binario = "", palavra;
entrada = new Scanner(System.in);
palavra = entrada.next();
for (int x = 0; x < palavra.length(); x++)
binario = binario.concat(Integer.toBinaryString(palavra.charAt(x)));
System.out.println(binario);
Espero que ajude!
Abraço,
ViniGodoy
Tem vários problemas no seu código, Frederico:
Para concatenar Strings, use o StringBuilder, não o método concat.
Você não gera uma sequencia de bits. Você gera uma nova String, contendo os caracteres ‘0’ e ‘1’, correspondente aos bits. Na verdade, sua nova String é 8 vezes maior que a original, e não pode ser trabalhada de forma numérica de maneira eficiente, como o colega do tópico original gostaria.
Você está usando next() e não nextLine() para ler do console. Isso deixa lixo no scanner, pois o \n pode não ser retirado do buffer;
A forma que o Dieval postou já estava correta, embora para criptografia, geralmente usemos o % e não o +, como propôs o autor do tópico.