两个字符串如何模糊比较?

比如“12344321我爱java”与“1我432爱2134ajav”被认为两个字符串相等!

看你的意思,好象不管顺序怎么样只要里面的内容一样就相等,对吧?
试试这个吧
[code="java"]
String a="12344321我爱java";
String b="1我432爱2134ajav";
boolean flag = false;
if(a.length()==b.length()){
for(int i=0;i<b.length();i++){
a = a.replaceFirst(new Character(b.charAt(i)).toString(), "");
}
if(a.length()==0){
flag = true;
}
}
System.out.println(flag);
[/code]

你得定一个规则,看它们接近到什么程度才能认为是相等,这个规则不好定,因为相等一般要满足一条简单的定律:
[b]如果 a==b, b==c,那么 a==c[/b]

规则举例:如果两个字符串用到的字符集相同,而且相同字符出现个数相等,那么这两个字符串相等。对应代码如下:
[code="java"]
boolean fuzzyEqual(String a, String b) {
int len = a.length();
if(len != b.length())
return false;

char[] chars = a.toCharArray();
char[] bchars = b.toCharArray();

for(int i=0; i<len; i++) {
  for(int j=0; j<len; j++) {
    if(chars[i] == bchars[j]){
      chars[i] = 0;
      bchars[j] = 0;
      break;
    }
  }
}
for(int i=0; i<len; i++){
  if(chars[i] != 0)
    return false;
}
return true;

}
[/code]

如果只想确定所含字符一样的话貌似可以这样做(刚想到的,不一定能覆盖所有情况):
对两个字符串里的字符的ascii码分别做加法和乘法,如果都相同应该就相同了。

能相当于全文检索不?