现在我甚至无法编译这个程序。我试着编写一个程序,它接受一个输入的字符串,然后通过将它们与数组中预定的另一个字母交换出来加密它们,然后再次显示原始文本。任何帮助,将不胜感激。
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();}
答案 0 :(得分:1)
首先,当遇到错误时,最好在您的问题中包含错误 - 通常它会指向您正确的错误来源。当编译失败时,编译器会说什么?
接下来,我现在正在打电话,无法验证我是否发现了所有问题,但请记住,Java中的字符串是不可变的,这意味着它们在创建后无法更改。这意味着你不能以你正在做的方式追加他们。尝试使用StringBuilder类来完成你在这里寻找的东西,或者在你去的时候填充一个新的数组并在最后转换为String。
此外,您似乎缺少两个大括号(for循环和run方法)。
答案 1 :(得分:0)
从静态方法run()
开始,您指的是非alphabet, crypt, oldMessage
之类的非静态变量。
首先想到的是