public static String basicEncrypt(String s) {
String toReturn = "";
for (int j = 0; j < s.length(); j++) {
toReturn += (int)s.charAt(j);
}
//System.out.println("Encrypt: " + toReturn);
return toReturn;
}
有什么办法可以反向查找原始字符串吗?非常感激。
最佳答案
在仅使用ASCII字符(32-255码)的假设下,该算法很简单:
输入输入的第一个字符
如果是1
或2
-截取下两位数字并转换为字符
如果是其他字符,请截取下一位并转换为字符
如果还有一些输入,请转到1。
这是一个快速的脏Scala实现:
def decrypt(s: String): String = s.headOption match {
case None => ""
case Some('1') | Some('2') => s.substring(0, 3).toInt.toChar + decrypt(s.substring(3))
case Some(_) => s.substring(0, 2).toInt.toChar + decrypt(s.substring(2))
}