Как найти символы, общие для двух строк в Java, с помощью single replaceAll?

Итак, предположим, у меня есть:

String s = "1479K";
String t = "459LP";

, и я хочу вернуть

String commonChars = "49";

общие символы между двумя строками.

Очевидно, что это можно сделать со стандартом цикл вроде:

String commonChars = "";
for (i = 0; i < s.length; i++)
{
    char ch = s.charAt(i);
    if (t.indexOf(ch) != -1)
    {
        commonChars = commonChars + ch;
    }
}

Однако я бы хотел сделать это в одной строке, используя replaceAll . Это можно сделать следующим образом:

String commonChars = s.replaceAll("["+s.replaceAll("["+t+"]","")+"]","");

Мой вопрос: можно ли сделать это с помощью одного вызова replaceAll ? А каким было бы регулярное выражение? Я предполагаю, что мне нужно использовать своего рода взгляд вперед, но мой мозг превращается в кашу, когда я даже думаю об этом.

6
задан Kidburla 17 November 2010 в 11:33
поделиться