E ai pessoal, é o seguinte! to tentando fazer uma função que implemente a criptografia ROT13, é assim! eu recebo uma String, e devo substituir cada caracter pelo valor do caracter + 13, e subtrair 26 caso o resultado seja maior que a última letra.
Por exemplo “abCde” fica “noPqr” e “UVWxyz” fica “HIJklm”, mas só os caracteres não acentuados devem ser modificados(letras acentuadas, números, espaços e outros símbolos devem continuar como estão) e caso a string codificada seja passada de novo pelo programa a String original será mostrada!
No caso eu fiz uma parte de um jeito bem simples e trabalhoso rsrs
no caso to substituindo de A até M pelos caracteres de N até Z ou seja treze posições acima até ai tudo bem ! mas não to conseguindo fazer o inverso, e também não to conseguindo retorna o valor original!
Só o que fiz foi isso, tentei algumas estruturas de seleção mas não deu certo, e também não tenho entendimento sobre array e tals, então tá dificil!!
Se puderem me dar uma mãozinha agradeço!!!
public String criptografia (String palavra){
for (int cont = 0; cont < palavra.length(); cont++) {
palavra = palavra.replace("A", "N");
palavra = palavra.replace("B", "O");
palavra = palavra.replace("C", "P");
palavra = palavra.replace("D", "Q");
palavra = palavra.replace("E", "R");
palavra = palavra.replace("F", "S");
palavra = palavra.replace("G", "T");
palavra = palavra.replace("H", "U");
palavra = palavra.replace("I", "V");
palavra = palavra.replace("J", "W");
palavra = palavra.replace("K", "X");
palavra = palavra.replace("L", "Y");
palavra = palavra.replace("M", "Z");
palavra = palavra.replace("a", "n");
palavra = palavra.replace("b", "o");
palavra = palavra.replace("c", "p");
palavra = palavra.replace("d", "q");
palavra = palavra.replace("e", "r");
palavra = palavra.replace("f", "s");
palavra = palavra.replace("g", "t");
palavra = palavra.replace("h", "u");
palavra = palavra.replace("i", "v");
palavra = palavra.replace("j", "w");
palavra = palavra.replace("k", "x");
palavra = palavra.replace("l", "y");
palavra = palavra.replace("m", "z");
}
return palavra;
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String palavra;
String palavraCriptografada;
palavra = JOptionPane.showInputDialog(null, " Digite a palavra ou frase à ser criptografada ", null, JOptionPane.INFORMATION_MESSAGE);
palavraCriptografada = criptografia(palavra);
JOptionPane.showMessageDialog(null, " Resultado da Criptografia é " + palavraCriptografada , null, JOptionPane.PLAIN_MESSAGE);