2014-11-02 3 views
0

수업 중에 암호 프로젝트를하고 있는데 문자열의 문자를 대체하는 데 어려움을 겪고 있습니다.이미 변경된 문자열 부분을 마무리하는 방법은 무엇입니까?

이것은 내가 지금까지 가지고있는 것으로, 이미 변경된 글자를 대체하는 것으로 끝나고, 나는 변하지 않는 글자가 변하지 않아도 변하지 않습니다.

import java.util.Scanner; 

public class Test { 
    public static String alphabet = "ABCDElFGHIJKLMNOPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; 
    public static String key = "CFILORUXADGJMPSVYBEHKNQTWZcfiloruxadgjmpsvybehknqtwz"; 

    public static void main(String[]args){ 
     Scanner keyboard = new Scanner(System.in); 
     System.out.println("Enter Phrase :: "); 
     String text = keyboard.nextLine(); 
     goEncrypt(text); 
     } 

    private static String goEncrypt(String text) { 
     String Encrypt = text; 
     for (int i = 0; i < 52; i++){ 
      char ALPHABET = alphabet.charAt(i); 
      char KEY = key.charAt(i); 
      Encrypt = Encrypt.replace(ALPHABET, KEY); 
      System.out.println(Encrypt); 
     } 
     return Encrypt; 
    } 
+0

그래서 문제가 무엇인가? – mikea

+0

변경된 문자를 유지하려면 오히려 다시 변경됩니다. – QuantizeCode

답변

2

이 작업을 잘못하고 있습니다. 알파벳을 반복하는 대신 텍스트를 반복하여 한 번에 한 문자 씩 바꾸어야합니다. 그렇게하면 각 캐릭터를 한 번 치게됩니다. 내가 ABD를 키에 알파벳의지도를 사용하도록 코드를 변경하는 것이 좋습니다

+0

나는 텍스트를 반복하고 문자를 대체하는 방법을 생각해 내는데 어려움을 겪고있다. 예제를 제공해 줄 수 있습니까? – QuantizeCode

+0

코스 크레딧을받지 못하면 안됩니다. – stark

+0

Pre-ap에 가입하지 않고 Ap 컴퓨터 과학에 배치되면 저주 또는 축복이라고 생각하기 시작했습니다. – QuantizeCode

0

다음 들어오는 텍스트 위로 스캔 :

public static Map<char, char> keyMap = new HashMap<char, char>(); 
static 
{ 
    keyMap.put('A', 'C'); 
    ... 
} 
... 
private static String goEncrypt(String text) { 
    StringBuffer encrypt = new StringBuffer(); 
    for (int i = 0; i < text.length(); i++){ 
     encrypt.append(keyMap.get(text.charAt(i))); 
    } 
    return encrypt.toString(); 
} 
관련 문제