Нужно ли делать что-то особенное, чтобы использовать метод замены с символами? - PullRequest
1 голос
/ 21 ноября 2011

Вот некоторый код

private String replaceToEncrypt(String password) {
    password.replace('A','@');
    password.replace('E','=');
    password.replace('I','!');
    password.replace('J','?');
    password.replace('O','*');
    password.replace('P','#');
    password.replace('R','&');
    password.replace('S','$');
}

При использовании операторов печати кажется, что ничего не происходит, потому что ABCDEFGHIJKLMNOPQRSTUVWXYZ до этого метода ABCDEFGHIJKLMNOPQRSTUVWXYZ после

Спасибо

Ответы [ 2 ]

3 голосов
/ 21 ноября 2011

Вы должны переназначить результат каждой замены, например:

password = password.replace('A','@');

Это потому, что все строки в Java являются неизменяемыми, и любая операция, которая изменяет строку, в действительности возвращает новую строку с изменениями, исходная строка остается неизменной.

1 голос
/ 21 ноября 2011

replace() в соответствии с API Java 7:

Возвращает новую строку, полученную в результате замены всех вхождений oldChar в этой строке с newChar.

Так что в вашем коде вам нужно переназначить паролю новую строку:

password = password.replace('A','@');
//etc...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...