猿问

如何使用正则表达式java在两个字符串中查找匹配的字符

在给定的两个单词中,是否可以使用正则表达式来查找匹配字符以及索引的多个字符串。


例如:


String1 = cat 

String2 = carrot

前 2 个字符和索引匹配 ( ca)。t不算数,因为它不在同一个索引中。


我试过循环。但是它似乎不起作用并且效率不高。


for (int i = 0; i < string1.length(); i++){

    for (int j = 0; j < string2.length(); j++){

        char ch1 = string1.charAt(i);

        char ch2 = string2.charAt(j);

        if (ch1 == ch2) {

            count char++;

    }

}


慕桂英546537
浏览 122回答 2
2回答

慕田峪9158850

对于此作业,for 循环仍然可以找到每个字符串具有相同字符的位置以及出现这种情况的次数:ArrayList<Integer> places = new ArrayList<Integer>();for (int i = 0; i < Math.min(string1.length(), string2.length()); i++) {&nbsp;a = string1.charAt(i);&nbsp;b = string2.charAt(i);&nbsp;if (a == b) {&nbsp; count++;&nbsp; places.add(i); //To say at which indices the 2 strings have the same chars&nbsp;}}

扬帆大鱼

我猜你想计算两个单词在相同位置重复的字符数。(前缀不一样)换句话说cat carrot,你想得到 2 因为c和a处于相同的位置,但t不是。换句话说carrot cabra,你会得到 3,因为c和a( r4th) 在同一个位置上是相同的。您只需要同时迭代两个字符串一次:String string1 = "car";String string2 = "carrot";int minLength = Math.min( string1.length(), string2.length() );int count = 0;for (int i = 0; i < minLength; i++){&nbsp; &nbsp; char ch1 = string1.charAt(i);&nbsp; &nbsp; char ch2 = string2.charAt(i);&nbsp; &nbsp; if (ch1 == ch2) {&nbsp; &nbsp; &nbsp; &nbsp; count++;&nbsp; &nbsp; }}我们使用minLength因为我们只需要检查直到最小单词的长度。我们使用string1.charAt(i)and string2.charAt(i),具有相同的索引i,因为我们想检查相同位置的字符。
随时随地看视频慕课网APP

相关分类

Java
我要回答