我试图写一个代码来加密一个三个字母的单词,比如单词" dog"加密了一个示例输出可能是mii,laz,fqy,zlp。我目前正专注于加密方法。虽然取代了这封信,但我遇到了一些麻烦。它在第22行,我将encryptString =替换为ch。我最终必须在框架和面板中提出这个想法,但我稍后会解决,现在我需要完成具体的方法和想法。
//*******************************************************
// Question2.java Section: CSIT112_01SP16
//
// Author Usman Dawud Bashiru.
// Encrpyts and Decrpyts a three letter english word.
//
//*******************************************************
import java.util.Scanner;
import java.util.Random;
public class Question2 implements Encode{
String userInput, encryptString;
int number, length;
char letter, ch, firstch, secondch, thirdch;
public String encrypt(String userInput){
String result = "";
this.userInput = userInput;
for(int i = 0; i < userInput.length(); i++){
ch = userInput.charAt(i);
encryptString = userInput.replace(ch, (char)((int)(Math.random()*26) +96));
result += encryptString;
}
System.out.println(result);
return null;
}
public String decrypt(String encrpytString){
this.encryptString = encrpytString;
return null;
}
public static void main(String[] args){
Question2 passcode = new Question2();
passcode.encrypt("dog");
}
这是我的输出,我知道我有点接近,但我现在正在撞墙。
----jGRASP exec: java Question2
jogdwgdos
----jGRASP: operation complete.
答案 0 :(得分:0)
您可以使用此替换encrypt
方法。
public String encrypt(String userInput){
String result = userInput;
for(int i = 0; i < userInput.length(); i++){
ch = userInput.charAt(i);
result = result.replace(ch, (char)((int)(Math.random()*26) +96));
}
System.out.println(result);
return result;
}
但是,您的加密方案不会像使用随机加密那样工作。此外,replace
方法将替换该字符的所有匹配项。因此,如果您正在加密字符串测试,则行result.replace
将替换所有t字符。
答案 1 :(得分:0)
我想我明白了。我不确定这是否是最好的解决方案,但它按计划用于加密方法。
public String encrypt(String userInput){
String result = "";
this.userInput = userInput;
for(int i = 0; i < userInput.length(); i++){
ch = userInput.charAt(i);
encryptString = userInput.replace(ch, (char)((int)(Math.random()*26) +97));
result += encryptString.charAt(i);
}
System.out.println(result);
return null;
}
这是我的输出:
----jGRASP exec: java Question2
xng
----jGRASP: operation complete.