java - 在java中查找两个多重集的交集

标签 java

         for(i=0;i<m1.length();i++)
             for(j=0;j<m2.length();j++)
                 if(m1.charAt(i)==m2.charAt(j)){
                     intersection=intersection+m1.charAt(i); 
                     m2.charAt(j)=' ';



                 }

                    System.out.println(intersection);



         } while(devam==false);

    }

}

这是我的代码。并且我们不允许使用方法或数组,我们只是初学者。我的代码在m2.charAt(j)=' ';处给出了错误>。我写那行是因为,当我们找到交叉点时,我们不应该再次检查该元素。您能帮忙吗?

最佳答案

你不能修改字符串的内容

m2.charAt(j)=' ';

改为这样做

m2 = m2.replace(m2.charAt(j), ' ');

请注意,replace() 将替换字符串中等于第一个参数的第一个字符。我假设,既然字符串代表一个集合,就不会出现重复的字符。如果有并且您想替换所有它们,只需使用replaceAll()即可。

关于java - 在java中查找两个多重集的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14610317/

相关文章:

java - length 和 length() 有什么区别?

java - 安卓全屏摄像头

java - 在 Android Studio [Java] 中使用内容解析器从图库中检索所有图像

java - 如何从 XPath 中删除所有选定的节点?

java - 在cucumber cli main方法后执行代码生成报告

java - 变量未显示在 Cat 日志中

java - 缓慢改变颜色,Java 图形

java - 安卓/ Gradle : specify a dependency for a subset of build types

java - 在哪里可以获得签名算法的对象标识符

java - 如何洗牌一个集合?