Java .replace()似乎修改了一个数组

时间:2016-03-03 15:58:06

标签: java replace replaceall

我正在做类似

的事情
public static String[] list = {"a","b","c","d",}  //It gives me a NullPointeException if I didn't use static
public String encrypt(String a){
   a = a.replace(list[0],list[2]);
   a = a.replace(list[4],list[3]);
   return a;
}

我还有另一种方法可以反转它

public String decrypt(String a){
   a = a.replace(list[2],list[0]);
   a = a.replace(list[3],list[4]);
   return a;
}

当然这是简化的,我使用的真实代码使用整个字母和一些数字。所以我的问题就出现了:如果我将123之类的内容输入encrypt()并输出ngV,那么我将ngV输入到decrypt()中,它会让我像{ {1}}。只有部分字母被正确切换,有些字母不正确。使用我忽略的数组值的1q3方法是否存在某些问题?我显然对Java很陌生。

我也看了Java replace() problems,但replace()没有成功。

早些时候,一位名叫Tunaki的主持人告诉我这是重复的,但我没有在stackoverflow上找到解决此问题的任何其他问题。如果你们不能从上面的示例中找出问题是什么,我可以发布我的实际代码(除了整个字母表之外,它是相同的。)

0 个答案:

没有答案