我的方法应该从名为enc的jTextArea中获取文本,并在具有变量名b的String数组中将其拆分(在每个",")。然后它应该把它放在一个for循环中,用我的String []字符数组中的一个字符替换每个字母,但它不起作用。帮助将不胜感激。
我的代码:
String[] chars = {"!", "£", "$", "^", "&", "*", "(", ")", "<", ">", "/", "\\", "#", "?", "[", "]", "{", "}", "-", "+", "=", "n", "@", "t", "|", "a", "."};
String[] encrypted;
public void replace(){
String a = enc.getText();
String[] b = a.split(",");
int length = a.length();
for(int i = 0; i < length; i++){
encrypted[i] = b[i].replace(b[i], chars[i]);
}
enc.append("\n" + encrypted.toString());
}
答案 0 :(得分:0)
而不是enc.append("\n" + encrypted.toString());
像这样使用。 enc.append("\n" + Arrays.toString(encrypted));
答案 1 :(得分:0)
您的代码有几个问题:
encrypted
。chars
数组长?您将获得ArrayIndexOutOfBoundsException
目前尚不清楚您要使用此代码完成的任务。你需要考虑一个更好的加密字符串的算法,而不仅仅是用char替换char。这将生成相同的加密字符串。考虑偏移密码(Caesar Cipher)。它非常简单易行。