我正在班上做一个加密项目,我正在努力替换字符串的字母。
这是我到目前为止所做的,最终取代已经改变的字母和我 需要改变的字母保持不变。
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 :(得分: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();
}