我正在尝试创建密码学家,但无法显示结果。我收到错误消息:minchiffer.displayText()上的“无法对类型为Cryptographer的非静态方法crypto(String)进行静态引用”。将加密方法更改为静态会使其输出错误的密码。反正有解决这个问题的方法吗?预先感谢!
主要:
public class Chiffer {
public static void main(String[] args) {
TextWindow title = new TextWindow("Title"); //Skapar fönster Title
TextView klartext = new TextView("Klartext", 10, 100); //Skapar textvy klartext
TextView minchiffer = new TextView("Min chiffertext", 10, 100); //Skapar textvy minchiffer
TextView chiffer = new TextView("Korrekt chiffertext", 10, 100); //Skapar textvy chiffer
TestCase testcase = new TestCase(); //Skapar TestCaset
int i = 1;
title.addView(klartext); // Lägger in textvyn klartext in i fönster Title
title.addView(minchiffer); // Lägger in minchiffer i Title
title.addView(chiffer); // Lägger in chiffer i Title
while (i <= 5) {
klartext.displayText(testcase.getClearText(i)); // Printar klartext i till textvyn head
minchiffer.displayText(Cryptographer.encrypt(testcase.getClearText(i))); // Printar text i till textvyn head
chiffer.displayText(testcase.getCryptoText(i)); // Printar crytpo text i till textvyn head
title.waitForMouseClick();
i++;
}
}
加密类:
public class Cryptographer {
public String encrypt(String text) {
StringBuilder klartext = new StringBuilder(text); //Stringbuilder klartext av text i
StringBuilder minchiffer = new StringBuilder(); //Stringbuilder mintext / buffert
String s = klartext.toString(); // String av Stringbuilder klartext
String ss = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] chiffer = "LKSBFMVAEYNTIOXJWCUPQDRHZG".toCharArray();
char[] arrayklartext = s.toCharArray(); //Gör array av String s
Key nyckel = new Key();
for (int i=0; i < text.length(); i++) {
int flyttsteg; //Steg som den flyttar sig
int q = 0; //Counter
if (!Character.isWhitespace(arrayklartext[i])) {
flyttsteg = nyckel.getStart() + ss.indexOf(klartext.charAt(i)) + q; //ss.indexof sätter den på bokstavens plats i alfabetet
minchiffer.append((char) (chiffer[flyttsteg % 26])); //Sätter chifferbokstav på plats vilketnmr på klartext teckennmr
q++;
} else {
minchiffer.append(' ');
flyttsteg =+ 1;
}
}
String klar = minchiffer.toString();
return klar;
}