所以我试图将一个char与一个char数组进行比较,问题是当数组还没有满时。我正在为高级井字游戏编写Java程序。

我已经考虑过使用ArrayList,但是我需要的类型不能是基本类型。

 char players = new char[numPlayers] // ex: numPlayers == 4

 getPlayers(numPlayers, players)



 private static void getPlayers(int numPlayers, char players[]){
    char temp;
    for(int i = 0; i < numPlayers; i++){
        System.out.println("Enter the character to represent player " + (i + 1));
        temp = in.next().charAt(0);
        char upper = Character.toUpperCase(temp);
        players[i] = upper;
        if(!validatePlayer(upper, players)){
            System.out.println("Each character must be unique");
            getPlayers(numPlayers, players);
        }
    }
}

private static boolean validatePlayer(char upper, char players[]){
    for(int i = 0; i < players.length; i ++){
        if(upper != players[i]){
            return true;
        }
    }
    return false;
}

最佳答案

呼叫者知道到目前为止已填满的长度,可以通过它。

   if (!validatePlayer(upper, players, i ))


该方法可以使用此长度,而不是数组的整个长度。

private static boolean validatePlayer(char upper, char players[], int len ){
    for (int i = 0; i < len; i++) {
        ...
    }
    return false;
 }

10-07 19:16
查看更多