Удалить набор непоследовательных символов (в виде строки) из другой строки? - PullRequest
0 голосов
/ 09 мая 2018

Мне нужно сгенерировать строку s3, удалив из s1 все символы, появляющиеся в s2.

Например:

String s1 = "Computer"; 
String s2 = "mur";

Результат должен быть: "Copte"

Я пытался сделать: s3 = s1.replace(s2, "");, но это не работает. Я получаю одно и то же слово: computer.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы можете использовать replaceAll с регулярным выражением:

String result = s1.replaceAll(String.format("[%s]", s2), "");// Output Copte

Если ваша строка содержит некоторые специальные символы, например, } { ) ( . -, этот символ может быть частью синтаксиса регулярных выражений, в этом случае вы должны экранировать их, вы можете просто использовать Pattern.quote(s2), например:

String result = s1.replaceAll(String.format("[%s]", Pattern.quote(s2)), "");
0 голосов
/ 09 мая 2018

s1.replace(s2, "") работает, когда s2 является подстрокой s1. Однако mur не является подстрокой Computer. Поскольку m u r - это подстроки Computer, вы можете удалить их отдельно.

String s1="Computer", s2="mur";
for (char c : s2.toCharArray()) {  // create a char array [m, u, r]
    s1 = s1.replace(String.valueOf(c), "");  // remove them separatly
}
System.out.print(s1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...