Java 如何识别匹配模式的数组

Java 如何识别匹配模式的数组,java,match,Java,Match,假设我有这个方法来匹配两个字符串之间的模式: Map<String, Integer> resultat = new HashMap<>(); for (String chaine: chaine1) { if(chaine2.contains(chaine)) { int index1 = chaine1.indexOf(chaine); int index2

假设我有这个方法来匹配两个字符串之间的模式:

   Map<String, Integer> resultat = new HashMap<>();
        for (String chaine: chaine1) {
            if(chaine2.contains(chaine)) {
                int index1 = chaine1.indexOf(chaine);
                int index2 = chaine2.indexOf(chaine);
                int diff = index1 - index2;
                resultat.put(chaine, diff);
            }
        }

例如,表示1、2和3都匹配在一起。在知道匹配可以是多个的情况下,是否有一种方法可以比较匹配?

有几种方法可以将一个字符串与其他字符串进行比较,从而得出其相似性的百分比,对于我来说,我建议使用余弦相似性索引。通过将数组传递给double similarity函数,它将返回两个字符串的相似性百分比,范围从0到1。有关更多信息,请浏览此处的链接

公共静态双重相似性(int-vec1[],int-vec2[] {


}

我希望这与您的答案偏好相匹配,因为您的问题有点模糊。我还不清楚问题是什么,但我认为这并不能回答问题,问题中没有关于相似性百分比的问题。他提到“两个字符串之间的匹配模式”,这个算法可能没有帮助,但它有一点机会解决他所寻找的问题。你的代码是如何使用a、b和c表的?它是否作为链1传递?到目前为止,你的问题还不清楚你想做什么。你能添加更多的细节吗,或者展示到目前为止该表是如何与代码一起使用的?我必须找到两个字符串之间的两个匹配模式之间的距离。匹配模式为A、B或C,A的值可以是1、2和3,B可以是4、5和6,C可以是7、8和9。在我的例子中,它实际上是字母而不是数字,但这只是一般的理想。@MaelPJ欢迎使用堆栈溢出。请学习如何使用堆栈溢出,并阅读如何提高问题的质量。然后,你的问题包括你的源代码作为一个,它可以被其他人编译和测试。还要详细解释您的“匹配”应该如何工作,以及示例的结果是什么。
A = 1, 2, 3
B = 4, 5, 6
C = 7, 8, 9
int dop=vec1[0]*vec2[0] +  vec1[1]*vec2[1];    
double mag1 =Math.sqrt(Math.pow(vec1[0],2)+Math.pow(vec1[1],2));
double mag2 =Math.sqrt(Math.pow(vec2[0],2)+Math.pow(vec2[1],2));    
double csim =dop / (mag1 * mag2);

return csim;