0
我做这样的事情Java - 使用数组中的值的replace()方法正在改变数组值?
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
解密()它给了我像1q3
。只有一些字母被正确切换,有些则没有。有没有用replace()
方法使用我缺少的数组值?我显然是Java的新手。
此外我读Java replace() problems但replaceAll()
没有工作。
字符串是不可变的,所以你需要存储'a.replace(...);' – Tunaki
'的结果如果我在123输入encrypt()并输出ngV“这绝不会发生。 – Joni
我很抱歉,我再次编辑我的代码。我有一个= a.replace(); 所以Tunaki你是否建议我存储a.replace的结果。 但是,问题仍然是一样的,你想给我一个视频展示它吗? –