加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何使用单个replaceAll找到Java中两个字符串的共同字符?

发布时间:2020-12-14 05:47:56 所属栏目:Java 来源:网络整理
导读:所以假设我有: String s = "1479K";String t = "459LP"; 我想回来 String commonChars = "49"; 两个字符串之间的共同字符. 显然,可以使用标准循环,例如: String commonChars = "";for (i = 0; i s.length; i++){ char ch = s.charAt(i); if (t.indexOf(ch)
所以假设我有:
String s = "1479K";
String t = "459LP";

我想回来

String commonChars = "49";

两个字符串之间的共同字符.

显然,可以使用标准循环,例如:

String commonChars = "";
for (i = 0; i < s.length; i++)
{
    char ch = s.charAt(i);
    if (t.indexOf(ch) != -1)
    {
        commonChars = commonChars + ch;
    }
}

但是我希望能够使用replaceAll在一行中完成此操作.这可以按如下方式完成:

String commonChars = s.replaceAll("["+s.replaceAll("["+t+"]","")+"]","");

我的问题是:是否可以使用replaceAll的单个调用来执行此操作?什么是正则表达式?我认为我必须使用某种前瞻性,但当我想到它时,我的大脑变得糊里糊涂.

解决方法

String commonChars = s.replaceAll("[^"+t+"]","");

请注意,您可能需要转义t中的特殊字符,例如使用Pattern.quote(t)而不是上面的t.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读