Java匹配字符串与x允许不匹配。

时间:2012-12-19 10:26:36

标签: java string mismatch

在X允许不匹配的情况下,查看字符串是否与另一个相同长度的字符串匹配的最快/最清晰的方法是什么?是否有可以执行此操作的库,它不在Apache stringUtils中(只有一个也使用插入/删除)。

所以我想说我有两串长度,我想知道它们是否与允许的1个不匹配相匹配。不允许插入和删除。

所以:

ABCD< - > ABCD =匹配

ABCC< - > ABCD =匹配1个不匹配

ACCC< - > ABCD =不匹配,2个不匹配太多。

4 个答案:

答案 0 :(得分:1)

String str1, str2;

假设字符串的长度相等:

int i = 0;

for(char c : str1.toCharArray())
{
   if(c != str2.charAt(i++))
      counter++;
}

if(counter > 1)
  // mismatch

答案 1 :(得分:1)

一次比较字符串一个字符。保持计数器计算不匹配。当计数器超出限制时,返回false。如果到达字符串的结尾,则返回true

答案 2 :(得分:1)

尝试将字符串存储在char数组中(char [] charArray = String.toCharArray())。

char[] stringA = firsString.toCharArray();
char[] stringB = secondString.toCharArray();
int ctr = 0;   

if(stringA.length == stringB.length){
    for(int i = 0; i<stringA.length; i++){
        if(stringA[i] == stringB[i]){
           ctr++;
        } 
    }
}

//do the if-else here using the ctr

答案 3 :(得分:1)

如果你想要最快的方式,你应该从现有的算法编写它,如“近似Boyer-Moore字符串匹配”或后缀树方法...

请看这里:https://codereview.stackexchange.com/questions/13383/approximate-string-matching-interview-question

他们做了数学计算,你做了代码......

其他有趣的SO帖子是:

Getting the closest string match

Can java.util.regex.Pattern do partial matches?

Generating all permutations of a given string

Similarity Score - Levenshtein