Nehmen wir also an, ich habe:
String s = "1479K";
String t = "459LP";
und ich möchte zurückkehren
String commonChars = "49";
die gemeinsamen Zeichen zwischen den beiden Zeichenketten.
Offensichtlich ist es möglich, mit einer Standardschleife wie:
String commonChars = "";
for (i = 0; i < s.length; i++)
{
char ch = s.charAt(i);
if (t.indexOf(ch) != -1)
{
commonChars = commonChars + ch;
}
}
Ich würde dies jedoch gerne in einer Zeile tun, indem ich replaceAll
. Dies lässt sich wie folgt bewerkstelligen:
String commonChars = s.replaceAll("["+s.replaceAll("["+t+"]","")+"]","");
Meine Frage ist: Ist es möglich, dies mit einem einzigen Aufruf von replaceAll
? Und wie würde der reguläre Ausdruck lauten? Ich vermute, dass ich eine Art Vorausschau verwenden muss, aber mein Gehirn wird zu Brei, wenn ich nur daran denke.