java - 当数组未满时如何比较字符与数组

标签 java arrays char

所以我试图将一个字符与一个字符数组进行比较,问题是当数组尚未满时。我正在为高级井字棋制作一个 java 程序。

我考虑过使用 ArrayList,但我需要的是 char 类型,而不是原始类型。

 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;
 }

关于java - 当数组未满时如何比较字符与数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56959988/

相关文章:

java - 在调用父类(super class)finalize()方法之后编写的finalize()方法中的语句会执行吗?

c - 字符数组后的奇怪字符

c# - C# 中的 Array.GetLength(dimension) 是如何工作的?

c - 用 '%20' 替换字符串中的所有空格。假设字符串在字符串末尾有足够的空间来容纳额外的字符

java - 如何使用类 Math 用从 0 到 99 的随机数填充数组?

java - GLSurfaceView 在 Android < 4.2 上工作,但在 > 4.2 上黑屏

java - 取消已经运行的 CompletableFutures 的预期模式是什么

java - 在二维数组中查找相似行的代码

C++对数组的引用

c - C 中的字符值错误