Tenho algumas saídas que são esperadas para realizar testes, e o método que fiz funciona para algumas, porém, outras estão retornando caracteres diferentes dos que são esperados:
Entrada: ”
Saída Esperada: —
Saída do método: †
Entrada: ’
Saída Esperada: •
Saída do Método: ’
Código:
publicstaticStringciframento(Stringpalavra){
Stringcifrada="";intchave=3;for(inti=0; i < palavra.length(); i++){intcod=(int)palavra.charAt(i);cifrada=cifrada+(char)(cod+chave);}
returncifrada;}
Alguém tem alguma ideia do que pode estar acontecendo?
Não deu pra entender as entradas que deram errado, quais caracteres são esses? São as aspas ou foi erro de digitação? Acho que ficaria mais fácil se você colocasse a string inteira que deu problema. E não esqueça de formatar corretamente o código. Basta selecioná-lo e usar o botão </> do editor:
De qualquer forma, tem outra maneira - na minha opinião - mais simples. Basta obter o array de char da string, modificá-lo (somando 3 em todos os elementos) e criar a nova string a partir dele:
As aspas duplas (código 148) deveria retornar o traço (código 151)
E a citação a direita (código 146) deveria retornar o ponto (código 149)
Vou colocar a String inteira:
Entrada: Me vê se a panela da moça é de aço, Madalena Paes, e vem.”
Saída Esperada: Ph#yí#vh#d#sdqhod#gd#prêd#ì#gh#dêr/#Pdgdohqd#Sdhv/#h#yhp1—
Entrada: fale à Danissa!’
Saída Esperada: idoh#ã#Gdqlvvd$•
E ao somar 3, o resultado é o caractere cujo código é 8224, que no caso é o “DAGGER” (†).
O mesmo acontece com o —, cujo código é 8212 (“EM DASH”), ou seja, a diferença dele para as aspas nem é 3, não teria como um virar o outro mesmo.
S
StarDust1
Então é isso mesmo, fiz esse teste aqui e consegui ver o erro agora, eu estava em dúvida se esta tabela estava certa ou o se o problema era meu código.
Muito Obrigada!