如何解决Java-SubstitutionCipher:cryptoString str,String mapTo,String mapFrom
我需要加密从另一个字符串映射的消息。这是说明:
如果您有两个长度相同的字符串,它们有什么共同点(它们的索引都从0..n开始)。如果将mapFrom放置在页面上的mapTo顶部,然后在它们之间写入索引-您将看到一个模式。在mapFrom中找到字母的索引,可以在mapTo中找到要替换的字符。
例如,如果您的mapTo是di3kj,而mapFrom是abcde,并且您想要加密的单词是abba。我选择a,在abcde(0)中找到索引,然后使用该索引在替换字符串(d)中找到charAt该索引。然后,我们将附加答案,以便构建器最终会崩溃。请注意,如果该字符不在mapFrom中,则意味着您无需执行任何操作,就可以使该字符保持不变。
完成“您的任务”的有效方法是:
indexOf(String)
String.valueOf(char)//给出字符的字符串表示
charAt(int)
contains(String)//如果参数在字符串中,则返回true
在尝试创建的方法中使用了两种不同的方法。
第一种是仅将一个字符上移或下移1个字符的移位方法。
第二种方法将整个字符串移过来。我尝试创建的方法需要具有以下方法签名:
公共静态字符串加密(字符串str,字符串mapTo,字符串mapFrom){}
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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。