为了账号安全,请及时绑定邮箱和手机立即绑定

如何比较两个不同字符串中的字符

如何比较两个不同字符串中的字符

白衣非少年 2023-05-17 14:33:28
可以说我有“jfk”和“jfc”。我想遍历两个字符串并找出它们是否不同以及它们在哪里不同。我想看看这些字符串是否是字谜。“新门”和“一个字”是变位词。如果它不是字谜,我希望代码通过字符串不同的字符数来告诉我。jfk 和 jfc 相差 1。“macd”和“mebc”相差 2,它们不能是变位词。如果这两个字符串的长度不同,那么它们就不可能是变位词。我尝试遍历字符串,但那是我卡住的时候。我不知道如何同时遍历两个字符串并找出它们是否因某些字符而不同。我只检查了两个字符串的长度是否相同。 static void isAnagram(List <String> s1, List <String> s2) {          if (s1.length() != s2.length()) {              System.out.println("Not anagrams");          } else {              for(int i = 0; i < s1.length(); i++) {               for(int j = 0; j < s2.lenth(); j++) {//i know that iterating through both strings like this does not make sense but i am stuck.        }```
查看完整描述

3 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

如果你被允许使用额外的库,你应该看看谷歌的番石榴,特别com.google.common.collect.Multiset<E>是它的实现。您可以将每个字符串的字符放入一个Multiset<Character>(不是 Multiset,这是行不通的,因为 E 必须是引用类型,没有原始类型)。两个字符串都是变位词 if multiset1.equals(multiset2)

在这两个 for 循环中,在我看来,您只需要一个循环并对两个字符串使用相同的计数器?


查看完整回答
反对 回复 2023-05-17
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

将数组转换为 char 数组。然后按字母顺序对数组进行排序,然后逐个字符地比较它们。



查看完整回答
反对 回复 2023-05-17
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

String str = "abc"; char[] chars = str.toCharArray(); 您可以使用它来将字符串转换为 char 数组,接下来,通过运行一个简单的 if 条件并递增一个变量来区分单词,这将非常容易地循环 char 数组。

查看完整回答
反对 回复 2023-05-17
  • 3 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信