suppose que oui je:Comment puis-je trouver les caractères communs à deux chaînes en Java en utilisant single replaceAll?
String s = "1479K";
String t = "459LP";
et je veux revenir
String commonChars = "49";
les caractères communs entre les deux chaînes.
De toute évidence, il est possible de faire avec une boucle standard comme:
String commonChars = "";
for (i = 0; i < s.length; i++)
{
char ch = s.charAt(i);
if (t.indexOf(ch) != -1)
{
commonChars = commonChars + ch;
}
}
Cependant, je voudrais être en mesure de le faire en une seule ligne à l'aide replaceAll
. Cela peut se faire comme suit:
String commonChars = s.replaceAll("["+s.replaceAll("["+t+"]","")+"]","");
Ma question est: est-il possible de le faire en utilisant un seul invocation de replaceAll
? Et quelle serait l'expression régulière? Je suppose que je dois utiliser une sorte de lookahead, mais mon cerveau se transforme en bouillie quand j'y pense.
maintenant je me sens très stupide – Kidburla