我是Java编程新手,最近开始从事字符串操作。
有人能给我一个检查字符串是否由相同字符集组成的工作思路吗?
示例:
string1="add" so string1 has characters "a,d"
string2="dad" so string2 has characters "a,d"
--> they match
String1="abc"
string2="abcd"
--> they don't match我不想用字母来比较
发布于 2014-03-05 08:48:39
听起来,您正在检查一个字符串中包含的字符集是否与另一个字符串中包含的字符集相同。这在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的定义完全按照您希望的方式进行:
将指定的对象与此集进行相等比较。如果指定的对象也是一个集合,则返回true,两个集合的大小相同,并且指定集合的每个成员都包含在这个集合中(或者等效地,该集合的每个成员都包含在指定的集合中)。此定义确保equals方法在set接口的不同实现中正常工作。
重要的是要看到您真的对这里的集合感兴趣--从一个String (这是一个字符序列)到一个Set<Character> (它没有固有的顺序,或者每个字符出现多少次)的转换是关键的部分。
发布于 2014-03-05 08:50:21
这是一个简单的库,可以帮助您处理生物字符串上的基本操作,也请查看String类文档,还有很多有用的东西。
https://stackoverflow.com/questions/22192592
复制相似问题