java - 如何判断2个不同的单词是否具有相同的字母?

标签 java arrays string sorting arraylist

我有一个单词列表,其中包含字典中的所有单词,我应该使用该列表来查找输入的单词是否与其他单词具有相同的字符。

我尝试的是使用 Arrays.sort() 方法按字母顺序排列每个单词和输入单词,然后使用 .equals() 方法比较这两个字符串。然后打印 .equals() 为 true 的实例。

但是,当我这样做时,输出只是打印列表中的每个单词,我不确定为什么。

为清楚起见进行编辑:想法是确定列表中与输入匹配的单词。 例如:如果我输入 act,则所有带有字母 a、c 和 t 的单词都将是输出。在这种情况下,唯一的输出将是 cat。

最佳答案

这个问题不太清楚,但我将提供一个与我见过的其他解决方案不同的解决方案:

您还可以使用列表removeAll来比较两个列表之间的常见字母...

listA.removeAll(listB); //listA will contain any letters not common to listB
if (listA.size() == 0) {
    return true; 
}

测试输出:

apppppppleeeeeeee <-- Input
[a, p, p, p, p, p, p, p, l, e, e, e, e, e, e, e, e] //String split 1
[a, p, p, l, e] //String split 2
letters are the same

appleeeeeef <-- Input
[a, p, p, l, e, e, e, e, e, e, f]
[a, p, p, l, e]
contains different letters
<小时/>

代码:

public class Main {

    public Main () {
        Scanner scan;
        scan = new Scanner(System.in);
        String input = scan.nextLine(); 
        if(check(split(input), split("apple"))) {
            System.out.println("letters are the same");
        }
        else {
            System.out.println("contains different letters");
        }
    }

    public boolean check(ArrayList<String> listA, ArrayList<String> listB) {
        listA.removeAll(listB); //listA will contain any letters not common to listB
        if (listA.size() == 0) 
            return true;
        return false;
    }

    public ArrayList<String> split(String word) {
        String[] splitMe = word.split("(?!^)");
        ArrayList<String> splitList = new ArrayList<String>();
        for (int i = 0; i < splitMe.length; i++) {
            splitList.add(splitMe[i]);  
        }
        System.out.println(splitList);
        return splitList;
    }

    public static void main(String[] args) {
        Main main = new Main();
    }
}

关于java - 如何判断2个不同的单词是否具有相同的字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26534451/

相关文章:

java - 如何向用户显示数组

javascript - 如何将类中的所有对象推送到一个数组 javascript?

javascript - 将 onClick 值存储到数组并进一步通信

javascript - match() 函数输入的 TypeScript "type"是什么

java - 扫描仪类和 InputMismatchException

java - 在 Spring Boot 中将 jsessonid cookie 设置为 SameSite=Strict 属性?

java - 如何识别 IBM 大型机 zos DB2 上的远程 4 类 JDBC 工作负载

java - 参数是@Test 需要的,但没有被标记为@optional 或定义

C# 从嵌套的 if 语句返回结果

javascript - 使用 Jquery 将空格替换为 "&nbsp;"