2012-03-30 4 views
2

Ich habe zwei Strings:Wie ungewöhnlich Zeichen von zwei Zeichenfolgen zurückgeben zu tun, die in Java im Vergleich

String fullString = "1234567"; 
String toRemove = "635"; 

Ich versuche, eine einfache und kompakte Art und Weise, um herauszufinden, um die Zeichen zurück, die in den beiden nicht erscheinen Saiten. Kann es mit zwei for-Schleifen machen, aber es wäre nett, das zu vermeiden. In diesem Fall wäre es "1247". Irgendwelche Ideen?

+0

* „eine einfache und kompakte Art und Weise“ * Legen Sie es in einer statischen Methode in einer Utility-Klasse, dann kann es zu einem ‚one-liner‘, wenn verwendet, . –

+0

Ihre Variablennamen weisen darauf hin, dass Sie Zeichen aus einer anderen Zeichenfolge entfernen möchten. Ist das Ihr Anwendungsfall - die Frage formuliert irgendwie eine allgemeinere Aufgabe. – Howard

Antwort

7

Sie können this tun:

"1234567".replaceAll("[635]", "") 

Es wäre etwas komplizierter sein, wenn die zweite Zeichenfolge erlaubt ^: Sie würde es überprüfen müssen, und sie an der Rückseite des Strings bewegen, wenn es vorhanden ist, bevor Sie Ihren Zeichensatz in eckige Klammern einschließen.

+0

Ich habe über Sets nachgedacht, aber ein Regex ist auch dafür ziemlich nett :) – Joey

+0

@Joey Ich dachte über Regexp nur, weil Java LINQ-ähnliche Einrichtungen nicht hat :) – dasblinkenlight

0

Werfen Sie einen Blick auf diese post, möglicherweise ist es das gleiche, was Sie suchen.

0

Es gibt viele nützliche String-Funktionen in

org.apache.commons.lang.StringUtils 
Verwandte Themen