Więc załóżmy mam:Jak znaleźć znaki wspólne dla dwóch ciągów w Javie przy użyciu pojedynczego replaceAll?
String s = "1479K";
String t = "459LP";
i chcę wrócić
String commonChars = "49";
wspólnych znaków między dwa ciągi.
Oczywiście jest to możliwe do zrobienia za pomocą standardowego pętli jak:
String commonChars = "";
for (i = 0; i < s.length; i++)
{
char ch = s.charAt(i);
if (t.indexOf(ch) != -1)
{
commonChars = commonChars + ch;
}
}
Jednak chciałbym, aby móc to zrobić w jednej linii przy użyciu replaceAll
. Można to zrobić w następujący sposób:
String commonChars = s.replaceAll("["+s.replaceAll("["+t+"]","")+"]","");
Moje pytanie brzmi: czy to możliwe, aby to zrobić za pomocą jednego wywołanie replaceAll
? A jaki byłby wyraz regularny? Przypuszczam, że muszę użyć jakiegoś rodzaju przodka, ale mój mózg zamienia się w papkę, kiedy nawet o tym myślę.
teraz czuję się bardzo głupi – Kidburla