这听起来像你想检查包含在一个字符串中的字符集是一样的集包含在另一个中的字符。这是相当容易实现与Set<Character>
:
static boolean characterSetsEqual(String text1, String text2) {
Set<Character> set1 = toCharacterSet(text1);
Set<Character> set2 = toCharacterSet(text2);
return set1.equals(set2);
}
static Set<Character> toCharacterSet(String input) {
Set<Character> set = new HashSet<>();
for (int i = 0; i < input.length(); i++) {
set.add(input.charAt(i));
}
return set;
}
Set<>.equals
都完全按照你希望它成为的方式定义:
比较指定对象与此set的相等。如果指定的对象也是一个集合,则两个集合具有相同的大小,并且指定集合中的每个成员都包含在此集合中(或等价地,此集合中的每个成员都包含在指定集合中),则返回true。该定义确保equals方法在设置接口的不同实现之间正常工作。
重要的是要看到,你真的有兴趣在套这里是重要的 - 从String
转换(这是字符序列)到Set<Character>
(有没有内在的顺序,也没有多少的计数每个角色出现的次数)是关键部分。
尊敬的罗汉:欢迎来到Stack Overflow。请参阅[游览](http://stackoverflow.com/tour)并访问[帮助中心](http://stackoverflow.com/help)以查找有关如何提出良好问题的信息。恐怕目前形式的问题很快就会结束。 – devnull
你想检查两个字符串是否相等? –
@devnull:这不是出色的书写,但它似乎对我来说很合理。我开始的答案:) –