Java-SubstitutionCipher:encrypt(字符串str、字符串mapTo、字符串mapFrom)

Java-SubstitutionCipher:encrypt(字符串str、字符串mapTo、字符串mapFrom),java,caesar-cipher,Java,Caesar Cipher,我需要加密从另一个字符串映射的消息。以下是说明: 如果有两个长度相同的字符串,它们有什么共同点(它们都有0..n的索引)。如果您将mapFrom放在页面上mapTo的顶部,然后在它们之间写入索引,您将看到一个模式。在mapFrom中查找字母的索引,将为您提供在mapTo中替换字母的字符 例如,如果您的mapTo是di3kj,mapFrom是abcde,那么您要加密的单词是abba。我取a,在abcde(0)中找到索引,然后使用该索引在替换字符串(d)中找到该索引的字符。然后我们将附加答案,这样构

我需要加密从另一个字符串映射的消息。以下是说明:

如果有两个长度相同的字符串,它们有什么共同点(它们都有0..n的索引)。如果您将mapFrom放在页面上mapTo的顶部,然后在它们之间写入索引,您将看到一个模式。在mapFrom中查找字母的索引,将为您提供在mapTo中替换字母的字符

例如,如果您的mapTo是di3kj,mapFrom是abcde,那么您要加密的单词是abba。我取a,在abcde(0)中找到索引,然后使用该索引在替换字符串(d)中找到该索引的字符。然后我们将附加答案,这样构建器最终将拥有diid。请注意,如果角色不在mapFrom中,则表示您不做任何操作,并且完全不更改角色

完成“你的任务”的有用方法有:

索引(字符串)
String.valueOf(char)//给出字符的字符串表示形式
字符(int)
contains(String)//如果参数在字符串中,则返回true

在我尝试创建的方法中,有两种不同的方法供我使用。
第一个是移位方法,它只将字符上移或下移1个字符。
第二种方法将整个字符串移位。我尝试创建的方法需要具有此方法签名:

公共静态字符串加密(字符串str、字符串mapTo、字符串mapFrom){}

公共静态字符移位(字符x,字节移位){
int y=x+shift;
返回(char)y;//学生的TODO
}
公共静态字符串simplecarencode(字符串str,字节移位){
StringBuilder=新的StringBuilder();
//学生的待办事项
对于(int i=0;i
public static char shift(char x, byte shift) {
    int y = x + shift;
   return (char)y; //TODO by student
}

public static String simpleCaesarEncode(String str, byte shift) {
    StringBuilder builder = new StringBuilder(); 

    // TODO by student
    for(int i = 0;  i < str.length(); i++) {
        char tmp = str.charAt(i);
        builder.append(shift(tmp, shift));
    }
    // end TODO
    return builder.toString();
}  
 String mapFrom = "ABCEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.?()";
 public static String encrypt(String str, String mapTo, String mapFrom) {
    StringBuilder rtn= new StringBuilder();
    //TODO STUDENT
    
    //END TODO
    return rtn.toString();
}