0

我有一个字符串数组 x,上面写着:chair , table, couch

我有第二个数组 y,上面写着:椅子、勺子、桌子、刀、沙发、毛巾

我想检查是否使用了 x 中的所有单词,并且 x 中的单词在 y 中没有使用两次,例如:chair ,spoon, table ,knife ,couch ,towel ,chair,冰箱 在这个例子中,chairs 被使用了两次.

我的方法是使用大小为 y 的 for 循环,然后遍历所有其他索引,因为 x 的值总是按该顺序排列,并创建一个测试用例数组,但我不知道如何检查是否全部x 的项目被使用并检查它们是否没有被使用两次

for(int i = 0 ; i < y.length; i+=2){
    test[i] = x[i];
}
4

1 回答 1

0

您可以使用地图来存储您的结果。例如:

    Map<String, Integer> counters = new HashMap<>();

    for(int i = 0; i < y.length; i++) {  // Why do you use i+=2?
        String sY = x[i];

        if (counters.contains(sY)) {
            counters.get(sY)++;
        } else {
            counters.put(sY, 1);
        }
    }

    for(Don't know the type... counter, counters) {
        if ( counter.value() > 1)
            throw new IllegalStateException("You used " + counter.key() + " " + counter.value() + " times. Thats too much" ); 
    }

请注意,这段代码永远不会编译,但我希望你明白了。

于 2013-10-28T19:50:47.130 回答