Kid*_*rla 6 java regex string optimization
所以假设我有:
String s = "1479K";
String t = "459LP";
Run Code Online (Sandbox Code Playgroud)
我想回来
String commonChars = "49";
Run Code Online (Sandbox Code Playgroud)
两个字符串之间的共同字符.
显然,可以使用标准循环,例如:
String commonChars = "";
for (i = 0; i < s.length; i++)
{
char ch = s.charAt(i);
if (t.indexOf(ch) != -1)
{
commonChars = commonChars + ch;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我希望能够在一行中使用replaceAll.这可以按如下方式完成:
String commonChars = s.replaceAll("["+s.replaceAll("["+t+"]","")+"]","");
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否可以使用单个调用来执行此操作replaceAll?什么是正则表达式?我认为我必须使用某种前瞻性,但当我想到它时,我的大脑变得糊里糊涂.
String commonChars = s.replaceAll("[^"+t+"]","");
Run Code Online (Sandbox Code Playgroud)
请注意,您可能需要转义 中的特殊字符t,例如使用Pattern.quote(t)而不是t上面的。
| 归档时间: |
|
| 查看次数: |
9505 次 |
| 最近记录: |