android 两个字符串序列中匹配的字符计数

wbrvyc0a  于 2023-03-11  发布在  Android
关注(0)|答案(5)|浏览(118)

我想匹配两个字符串,并得到有多少字符匹配的序列。如:

String one="ABCDEFGHIJK";
String two="ZANDEFGHOPQ";

就像你看到的,它必须返回5个字符序列匹配,因为DEFGH存在于两个序列。
谢谢

zvms9eto

zvms9eto1#

import java.io.*;
import java.util.*;
class happy {
    public static void main(String args[])
    {
        String one="ABCDEFGHIJK";
        String two="ZANDEFGHOPQ";
        int a=0,c=0;
        if(one.length()<two.length())
            a=one.length();
        else
            a=two.length();
        for(int i=0;i<a;i++)
        {
            if(one.charAt(i)==(two.charAt(i)))
                c++;
        }
        System.out.println(c);
    }
}
q5lcpyga

q5lcpyga2#

public class Test {

public static void main(String[] args) {

    String one="ABCDEFGHIJK";
    String two="ZANDEFGHOPQ";
    int size1 = one.length();
    int size2 = two.length();
    int i = 0;
    int j = (size1 >= size2 ? size2 : size1);
    char[] oneTab = one.toCharArray();
    char[] twoTab = two.toCharArray();
    int k = 0;
    for(i = 0; i< j; i++){
        if((String.valueOf(oneTab[i])).equals(String.valueOf(twoTab[i]))){
            k = k+1;
        };
    };
    System.out.println(k);      
}

}

f8rj6qna

f8rj6qna3#

试试这个

String one="ABCDEFGHIJK";
String two="ZANDEFGHOPQ";
int cnt=0;
   for (int i=0;i<one.length();i++){
       for (int j=0;j<two.length();j++){
            if(one.charAt(i) == two.charAt(j) ){
                cnt++;
            }
        }
    }

Toast.makeText(this, "count"+cnt, Toast.LENGTH_SHORT).show();
oewdyzsn

oewdyzsn4#

也许像这样的东西会有用。

String one="ABCDEFGHIJK";
String two="ZANDEFGHOPQ";
int counter = 0;

// Iterate over the string character by character - stop when reaching the
// end of the shortest string
for( int i=0; i<one.length() && i<two.length(); i++ ) {
    // Compare the strings character at the current position/index
    if(one.charAt(i) == two.charAt(i)) {
        // The characters matched so increment the counter
        counter++;
    } 
}
cyej8jka

cyej8jka5#

我知道这是一个很老的问题,但也许有人会发现这个“if-less”的答案是一个很好的答案,可以通过用循环中的 len 的定义来替换它,从而使它更短一些。

public class TestClass {
    public static void main(String[] args) {
        String one = "ABCDEFGHIJK";
        String two = "ZANDEFGHOPQ";
        int len = Math.min(one.length(), two.length());
        int counter = 0;
        for (int i = 0; i < len; i++) {
            counter += (one.charAt(i) == two.charAt(i)) ? 1 : 0;
        }
        System.out.println(counter);
    }
}

相关问题