所以,我试图找到一种方法来对凯撒密码进行加密/解密(在这里你可以获取一个值,然后在字母表中多次移动字母,例如,如果密钥是3,然后a将成为d,b将是e,而c将是f等等)但我需要使用递归,而不是迭代。这是我到目前为止所做的,但它只加密最后一个字符,并输出“加密 - w”,这对我来说没有意义。
public class Driver {
static String encrypted = "";
public static void main(String[] args) {
System.out.println("Encrypted - " + cipher("encrypt", 3));
}
public static String cipher(String str, int i){
char ch = str.charAt(0);
StringBuffer output = new StringBuffer();
if (str.length() <= 1) {
ch = (char) ('a' + (ch - 'a' + i) %26);
output.append(ch);
return output.toString();
}
else{
return cipher(str.substring(1),i);
}
}
}
答案 0 :(得分:1)
嘿,在这个逻辑中,你只对最后一个字母进行加密。你必须为所有的字母做这件事。正如@Thilo正确地说你也必须照顾头脑。 工作解决方案是这样的:
SELECT * FROM testtable WHERE HouseInfo NOT LIKE '%[a-z0-9]'