Java 如果布尔数组为true,则用字符串(多维)填充它

Java 如果布尔数组为true,则用字符串(多维)填充它,java,arrays,boolean,Java,Arrays,Boolean,我想知道是否可以用字符串填充多维布尔数组 让我们想象一下,我们正在制作战舰游戏,比如: public static void main(String[] args) { boolean[][] board = new boolean[5][5]; board[3][2] = true; board[0][0] = true; for (boolean[] line : board ) { System.out.println(

我想知道是否可以用字符串填充多维布尔数组

让我们想象一下,我们正在制作战舰游戏,比如:

public static void main(String[] args) {
    boolean[][] board = new boolean[5][5];

    board[3][2] = true;
    board[0][0] = true;

    for (boolean[] line : board
         ) {
        System.out.println(Arrays.toString(line));
    }

}

现在是否可以将所有值更改为“[]”(如果为false)和“[X]”(如果为true),但仍保留布尔值?

最明显的解决方案是使用
对象而不是
布尔值。然后可以重写它的
toString
方法

class Square {

    private boolean taken;

    public boolean getTaken() {
        return taken;
    }

    public void setTaken(boolean taken) {
        this.taken = taken;
    }

    @Override
    public String toString() {
        return taken ? "X" : " ";
    }

}

public void test() {
    Square[][] board = new Square[5][5];
}
谁知道这会引向何方——甚至(喘息)一块
物体

class Board {

    Square[][] board = new Square[5][5];

    public Board() {
        for (Square[] row : board) {
            for (int j = 0; j < row.length; j++) {
                row[j] = new Square();
            }
        }
    }

}
课程板{
广场[]董事会=新广场[5][5];
公共委员会(){
用于(方形[]行:板){
对于(int j=0;j
最明显的解决方案是使用
对象
而不是
布尔值
。然后可以重写它的
toString
方法

class Square {

    private boolean taken;

    public boolean getTaken() {
        return taken;
    }

    public void setTaken(boolean taken) {
        this.taken = taken;
    }

    @Override
    public String toString() {
        return taken ? "X" : " ";
    }

}

public void test() {
    Square[][] board = new Square[5][5];
}
谁知道这会引向何方——甚至(喘息)一块
物体

class Board {

    Square[][] board = new Square[5][5];

    public Board() {
        for (Square[] row : board) {
            for (int j = 0; j < row.length; j++) {
                row[j] = new Square();
            }
        }
    }

}
课程板{
广场[]董事会=新广场[5][5];
公共委员会(){
用于(方形[]行:板){
对于(int j=0;j
使用内部循环和
if
语句…您不能将
布尔值
数组的值更改为
字符串
,但可以打印
字符串
而不是
布尔值。“如果布尔值数组为真,则用字符串填充”-否。布尔数组只能容纳
boolean
s。您始终可以执行
replaceAll(“true”,“X]”)。replaceAll(“false”,“[]”)输出字符串上的
。@Dawidura为什么
replaceAll
而不是简单的
replace
?我认为这是误导,因为其他一些语言概念,如
C
或any,但不要忘了这是java,布尔值只接受“true”或“false”,而不接受字符串、字符或int。。但是你可以得到任何收集课程的帮助。。我相信你会得到一个好的解决方案。感谢使用内部循环和
if
语句…您不能将
布尔
数组的值更改为
字符串
,但可以打印
字符串
而不是
布尔
值。“如果布尔数组为真,则用字符串填充”-否。布尔数组只能容纳
boolean
s。您始终可以执行
replaceAll(“true”,“X]”)。replaceAll(“false”,“[]”)输出字符串上的
。@Dawidura为什么
replaceAll
而不是简单的
replace
?我认为这是误导,因为其他一些语言概念,如
C
或any,但不要忘了这是java,布尔值只接受“true”或“false”,而不接受字符串、字符或int。。但是你可以得到任何收集课程的帮助。。我相信你会得到一个好的解决方案。谢谢