How can I check if the char array has an empty cell so I can print 0 in it?
Asked Answered
M

3

8

Code:

public void placeO(int xpos, int ypos) {
    for(int i=0; i<3;i++)
        for(int j = 0;j<3;j++) {
            // The line below does not work. what can I use to replace this?
            if(position[i][j]==' ') {
                position[i][j]='0';
            }
        }
}
Monosaccharide answered 1/2, 2014 at 19:57 Comment(1)
Compare it with Character.UNASSIGNED - not ' ' or 0.Vanettavang
P
15

Change it to: if(position[i][j] == 0)
Each char can be compared with an int.
The default value is '\u0000' i.e. 0 for a char array element.
And that's exactly what you meant by empty cell, I assume.

To test this you can run this.

class Test {

    public static void main(String[] args) {
        char[][] x = new char[3][3];
        for (int i=0; i<3; i++){
            for (int j=0; j<3; j++){
                if (x[i][j] == 0){
                    System.out.println("This char is zero.");
                }
            }
        }
    }

}
Peer answered 1/2, 2014 at 19:59 Comment(0)
L
5

Assuming you have initialized your array like

char[] position = new char[length];

the default value for each char element is '\u0000' (the null character) which is also equal to 0. So you can check this instead:

if (postision[i][j] == '\u0000')

or use this if you want to improve readability:

if (positionv[i][j] == 0)
Landbert answered 1/2, 2014 at 20:3 Comment(0)
N
2
 if(position[i][j]==0)
{
 // The index value of [i][j] is 0
}
Newson answered 1/2, 2014 at 19:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.