如果一个数组中的值未包含在另一个数组中,如何返回false?

我有两个数组。一个是输入用户数组,另一个是选择数组。一个示例是用户数组是BLACK,RED,GREEN,而options数组是BLUE,RED,GREEN。因为BLACK不在choices数组中,所以它将返回false。您还可以让RED,RED,RED返回True,因为选择数组中包含红色,而使用选择次数则无关紧要。

这是我当前的代码,但是isTrue出于某种原因只上一次了,我认为这并不能说明具有相同颜色的多种选择。我觉得必须有一种更简单的方法来做到这一点?

public Boolean isValidColour(String userInput) {
        ArrayList<String> userPegsArray = new ArrayList<>();
        String[] userPegs = userInput.toUpperCase().split(",");
        int isTrue = 0;
        for (String peg: userPegs) {
            userPegsArray.add(peg);
        }

        for (int i = 0; i <Peg.values().length; i++) {
            for (String peg:userPegsArray) {
                if(peg.equals(Peg.valueOf(i).toString())) {
                    isTrue += 1;
                }
            }
        }
        if(isTrue == 5) {
            return true;
        }
        return false;
    }

更新:已解决,感谢您在评论中的帮助。

解决方案

    public Boolean isValidColour(String userInput) {
        ArrayList<String> userPegsArray = new ArrayList<>();
        String[] userPegs = userInput.toUpperCase().split(",");
        for (String peg: userPegs) {
            userPegsArray.add(peg);
        }

        Map pegMap = new HashMap<String,Integer>();
        for (int i = 0; i < Peg.values().length; i++) {
            pegMap.put(Peg.valueOf(i).toString(),i);
        }

        for (String peg:userPegs) {
            System.out.println("Peg: " + peg + " | pegMap: " + pegMap.toString());
            if (pegMap.containsKey(peg)) {
                System.out.println("ayyyayay");
                return true;
            }
        }
        return false;
    }
aaawang312 回答:如果一个数组中的值未包含在另一个数组中,如何返回false?

请注意

    public Boolean isValidColour(String userInput) {
        List<String> userPegsArray = Arrays.asList(userInput.toUpperCase().split(","));
        return Peg.containsAll(userPegsArray);
    }
本文链接:https://www.f2er.com/3147561.html

大家都在问