所以我试图将一个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;
}