如何最终确定已经更改过的字符串部分?

时间:2014-11-02 18:59:04

标签: java

我正在班上做一个加密项目,我正在努力替换字符串的字母。

这是我到目前为止所做的,最终取代已经改变的字母和我 需要改变的字母保持不变。

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;
    }

2 个答案:

答案 0 :(得分:2)

你正在以错误的方式完成这项任务。您需要循环浏览文本,一次替换一个字符,而不是循环使用字母表。这样你就可以击中每个角色一次。

答案 1 :(得分: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();
}