首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与具有相同字符或字母的字符串相比

与具有相同字符或字母的字符串相比
EN

Stack Overflow用户
提问于 2014-03-05 08:43:40
回答 2查看 172关注 0票数 1

我是Java编程新手,最近开始从事字符串操作。

有人能给我一个检查字符串是否由相同字符集组成的工作思路吗?

示例:

代码语言:javascript
复制
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

我不想用字母来比较

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-05 08:48:39

听起来,您正在检查一个字符串中包含的字符集是否与另一个字符串中包含的字符集相同。这在Set<Character>上相当容易实现

代码语言:javascript
复制
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> (它没有固有的顺序,或者每个字符出现多少次)的转换是关键的部分。

票数 4
EN

Stack Overflow用户

发布于 2014-03-05 08:50:21

这是一个简单的库,可以帮助您处理生物字符串上的基本操作,也请查看String类文档,还有很多有用的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22192592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档