字母加密

时间:2014-06-26 18:05:36

标签: encryption

现在我甚至无法编译这个程序。我试着编写一个程序,它接受一个输入的字符串,然后通过将它们与数组中预定的另一个字母交换出来加密它们,然后再次显示原始文本。任何帮助,将不胜感激。

import java.util.Scanner;
public class Array {
    private char [] alphabet = new char [25];
    private char [] crypt = new char [25];
    String oldMessage;


    public Array()
    {    char[] alphabet = "abcdefghijklmnoptqrstuvwxyz".toCharArray(); 
     char[] crypt = "qwertyuiopasdfghjklzxcvbnm|".toCharArray();

    }        

    public static void run(){ 

        Scanner scan = new Scanner(System.in);
        System.out.println("Enter a message that you would like to encrypt\n");
        oldMessage = scan.nextLine();

        String newMessage = "";
        for (int i=0; i<oldMessage.length(); ++i) {
            int index = alphabet.indexOf(old.charAt(i));
            if (index == -1)
                newMessage +="?";
            else 
                newMessage += crypt.charAt(index);

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {Array myApplication = new Array(); myApplication.run();}

2 个答案:

答案 0 :(得分:1)

首先,当遇到错误时,最好在您的问题中包含错误 - 通常它会指向您正确的错误来源。当编译失败时,编译器会说什么?

接下来,我现在正在打电话,无法验证我是否发现了所有问题,但请记住,Java中的字符串是不可变的,这意味着它们在创建后无法更改。这意味着你不能以你正在做的方式追加他们。尝试使用StringBuilder类来完成你在这里寻找的东西,或者在你去的时候填充一个新的数组并在最后转换为String。

此外,您似乎缺少两个大括号(for循环和run方法)。

答案 1 :(得分:0)

从静态方法run()开始,您指的是非alphabet, crypt, oldMessage之类的非静态变量。 首先想到的是