2017-11-09 3 views
-1

나는 이것을 알아내는 것에 가깝다고 생각합니다.Caeser Cipher JavaScript

개체는 "암호화 된"문자열을 가져 와서 실제 단어를 해독하는 것입니다. 아마 내 코드가 지금은 매우 우아하지 않습니다, 나는 거기에 도착할 것입니다. 그러나 charCodeAt()를 사용하여 올바른 ASCII 코드를 반환하려면 시작 'str = "SERR PBQR PNZC"를 얻고 필요에 따라 13을 더하거나 뺍니다. concat을 strArray에 연결합니다. 알아요, 배열이 아닙니다. 하지만 strArray를 배열로 만들 수 없으므로 String.fromCharCode (null, strArray);로 전달할 수 있습니다. 올바른 해독 된 텍스트를 반환하게합니다.

내 코드는 다음과 같습니다 :

function rot13(str) { // LBH QVQ VG! 

var strArray = ''; 

//var right = [70, 82, 69, 69, 32, 67, 79, 68, 69, 32, 67, 65, 77, 80]; 
//used above variable with String.fromCharCode.apply(null, right); and it worked. 

for(var i = 0; i < str.length; i++){ 
//console.log(str.charCodeAt(i)); 
    if(str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 77) { 
    strArray = strArray.concat(str.charCodeAt(i) + 13, ' '); 
    } else if(str.charCodeAt(i) >= 78) { 
    strArray = strArray.concat(str.charCodeAt(i) - 13, ' '); 
    } else { 
    strArray = strArray.concat(str.charCodeAt(i), ' '); 
    } 
} 
return strArray; 
} 

// Change the inputs below to test 
rot13("SERR PBQR PNZC"); 

어떤 도움을 크게 감상 할 수 있습니다.

+0

stryArray.split (''); 그러나 그것은 작동하지 않았다. –

+0

현재 문제가 무엇입니까? – zerkms

+0

배열의 모든 숫자를 누른 다음 해당 배열을 다른 루프를 사용하여 문자열로 바꿉니다. – zerkms

답변

0

다음은 올바른 문자열을 반환합니다. 끝에 공백을 제외하고 저장하십시오. 나는 그 도전을 끝내지 못한다.

function rot13(str) { // LBH QVQ VG! 

    var strArray = ''; 

    for(var i = 0; i < str.length; i++){ 
    //console.log(str.charCodeAt(i)); 
    if(str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 77) { 
     strArray = strArray.concat(str.charCodeAt(i) + 13, ' '); 
    } else if(str.charCodeAt(i) >= 78) { 
     strArray = strArray.concat(str.charCodeAt(i) - 13, ' '); 
    } else { 
     strArray = strArray.concat(str.charCodeAt(i), ' '); 
    } 

    } 
    var correct = strArray.split(' '); 
    console.log(correct); 
    return String.fromCharCode.apply(null, correct); 
} 

// Change the inputs below to test 
rot13("SERR PBQR PNZC"); 
+0

.trim() 당신은 잘해야합니다. – stealththeninja