6 Stimmen

Wie finde ich die Zeichen, die zwei Strings in Java gemeinsam haben, indem ich single replaceAll verwende?

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X