Пропуск некоторых символов при печати массива в Java - PullRequest
0 голосов
/ 24 марта 2020

Я использую метод ниже, чтобы напечатать карту для игры, используя массив. Как скрыть некоторые символы (у них нет определенного шаблона, потому что они случайно угадываются компьютером), когда я распечатываю массив?:

public static void print2D(char[][] ocean_map) {
        int j = 0;
        System.out.print("  ");
        for(int i = 0; i < ocean_map.length; i++){
            System.out.print(" " + i + " ");
        }
        System.out.println();
        for (char[] row : ocean_map) {
                System.out.println(j + "|" + Arrays.toString(row) + "|" + j);
                j++;
        }
        System.out.print("  ");
        for(int i = 0; i < ocean_map.length; i++) {
            System.out.print(" " + i + " ");
        }
        System.out.println();
    }

1 Ответ

0 голосов
/ 24 марта 2020

Вместо Arrays.toString(row) вы можете написать метод, чтобы справиться с этим для вас. Например

String rowAsString(char[] row) {
    // this is the list of characters you want to show
    List<Character> whitelist = Arrays.asList('a', 'b', 'c');
    StringBuilder sb = new StringBuilder();
    for (char ch : row) {
        final String toAdd;
        if (whitelist.contains(ch)) {
            toAdd = ch;
        } else {
            toAdd = ' ';
        }
        sb.append(toAdd);
    }
    return sb.toString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...