比较Java中的两个字符串并显示字符差异

比较Java中的两个字符串并显示字符差异,java,string,comparison,character,Java,String,Comparison,Character,我正在寻找一种方法来逐个字符比较两个字符串 它应该显示是否有其他字符没有出现在两个字符串中 有人有解决问题的办法吗 for(int j=0; j < min; j++) { s1 = w1.substring(j,j+1); s2 = w2.substring(j,j+1); if (!s1.equalsIgnoreCase(s2) ){ counter++;

我正在寻找一种方法来逐个字符比较两个字符串

它应该显示是否有其他字符没有出现在两个字符串中

有人有解决问题的办法吗

 for(int j=0; j < min; j++) {
          s1 = w1.substring(j,j+1);
          s2 = w2.substring(j,j+1);

          if (!s1.equalsIgnoreCase(s2) ){
            counter++;    
            
          }
        }

我想你想要的是显示两个字符串有相同的字母,每个字母的数量相同。使用2个哈希集,其中键是字符,值是字符串中出现的次数。每个字符串都有一个hashset,然后在字符串中循环添加字符并进行比较,以查看这些集合是否相等

例如,将它们转换为字符,并将差异添加到空字符串中作为for循环扫描

String a = "abc";
char[] aa = a.toCharArray();
String b = "cba";
char[] bb = b.toCharArray();
String dif;

public void differ() {
  for(int i = 0; i < aa.length - 1; i++) {
    if(!aa[i].equals(bb[i])) {
      dif += aa[i];
    }
  }
}
String a=“abc”;
char[]aa=a.toCharArray();
字符串b=“cba”;
char[]bb=b.toCharArray();
字符串dif;
公共空间{
对于(int i=0;i

我相信不同的运行方式会返回“AC”,因为它们中间都有B。这就是你想要的吗?

效率低下?以什么方式?你应该更清楚地定义你真正想要实现的目标。“我在寻找一种方法,将两个字符串逐个字符进行比较”,然后“我想找出这两个字符串之间是否存在差异”。那么“一个字符一个字符”还是“完全不同”?完全不同的事情。我觉得这是一个“给我一个密码”类型的问题。您已经尝试过哪些解决方案?是什么在这些尝试中不起作用?您能否提供一个示例输入集以及每个输入的输出应该是什么?事实上,很难理解您自己为找到解决方案付出了多大的努力,也很难理解在需求陈述相对模糊的情况下您真正想要的答案。
String a = "abc";
char[] aa = a.toCharArray();
String b = "cba";
char[] bb = b.toCharArray();
String dif;

public void differ() {
  for(int i = 0; i < aa.length - 1; i++) {
    if(!aa[i].equals(bb[i])) {
      dif += aa[i];
    }
  }
}