Quindi supponiamo di avere:Come trovo i caratteri comuni a due stringhe in Java usando single replaceAll?
String s = "1479K";
String t = "459LP";
e voglio tornare
String commonChars = "49";
i caratteri comuni tra le due stringhe.
Ovviamente è possibile fare con un ciclo standard come:
String commonChars = "";
for (i = 0; i < s.length; i++)
{
char ch = s.charAt(i);
if (t.indexOf(ch) != -1)
{
commonChars = commonChars + ch;
}
}
Tuttavia vorrei essere in grado di fare questo in una linea utilizzando replaceAll
. Questo può essere fatto nel modo seguente:
String commonChars = s.replaceAll("["+s.replaceAll("["+t+"]","")+"]","");
La mia domanda è: è possibile fare ciò utilizzando un unico invocazione di replaceAll
? E quale sarebbe l'espressione regolare? Presumo di dover usare una specie di lookahead, ma il mio cervello diventa poltiglia quando ci penso.
ora mi sento molto stupido – Kidburla