如何在for循环中替换字符串数组中的字符?

时间:2014-05-06 17:36:43

标签: java arrays string encryption

我的方法应该从名为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());

}

2 个答案:

答案 0 :(得分:0)

而不是enc.append("\n" + encrypted.toString());

像这样使用。 enc.append("\n" + Arrays.toString(encrypted));

答案 1 :(得分:0)

您的代码有几个问题:

  1. 您尚未初始化encrypted
  2. 你想用chars替换整个普通字符串,但是如果普通字符串比chars数组长?您将获得ArrayIndexOutOfBoundsException
  3. 目前尚不清楚您要使用此代码完成的任务。你需要考虑一个更好的加密字符串的算法,而不仅仅是用char替换char。这将生成相同的加密字符串。考虑偏移密码(Caesar Cipher)。它非常简单易行。