2012-10-17 4 views
-2

이 작업을 수행하는 데 문제가 있습니다. 올바른 방향으로 지적해야합니다. 사용자는 명령 행 정수를 입력하여 문자가 얼마나 많은 위치로 회전할지 결정합니다. 내 문제는 모든 소문자와 대문자가 공백과 특수 문자를 그대로 유지하면서 문자를 지정된 정수로만 회전하는 것과 동일한 대소 문자를 유지하기를 원한다는 것입니다. 예를 들어, 정수 세트가 1이고 문자 "Z"가 암호화 될 문자열에 입력되면 다음 ASCII 문자로 이동하는 대신 "A"로 되돌려 야합니다. "[" "%"연산자를 사용하려고 시도했지만 잘못 사용했을 수 있습니다. 나는 나를 위해 전체 코드를 작성할 누군가를 찾고있는 것이 아니며, 작동하는 프로그램의 소스 코드를 보면서 내 대답을 찾을 수는 있지만, 지금은 많이 혼자서 생각하고 있지만 지금 당황 스럽다. 그리고 약간의 도움이 필요합니다. 감사!Caesars Cypher issue

나는 마침내 작동하도록했습니다. 전체 작동이 잘못되어 이것이 나에게 효과적이었습니다.

char encrypt = ('A' + (((input[i] - 'A') + key) % 26)); 

나는 빠른 답변을

char encrypt (input[i] + key) % 26; 

감사를 시도되기 전에!

+0

시 클릭 순환을 사용하고 특별한 경우를 처리하기 위해'if'를 사용하십시오. – aland

+2

사람들이 당신을 위해 코드를 작성하는 것을 원하지 않는다면, 당신이 시도한 것을 보여주고 어떻게 시연 할 것을 권장합니다 그것은 효과가 없습니다. 지금까지 시도한 것에 붙여 넣을 수 있습니까? 어디에서 붙어 왔는지 설명하십시오. –

답변

0

원하는 것을 성취 할 수있는 방법은 많이 있지만, java.util.Map을 살펴 보시기 바랍니다. 이것이 암호 Map이거나 복호화 Map인지 결정하고 입력 문자를 키로두고 출력 문자를 값으로 "넣습니다". 그런 다음 번역 할 필요가있을 때 각 번역 대상 문자를 살펴보고 출력 값을 조합하면됩니다. 매핑되지 않은 값에주의를 기울이십시오 (조회시 null을 반환하므로).