Не удается напечатать пробелы с помощью println (он игнорирует пробелы) в Java

#java #arrays

#java #массивы

Вопрос:

Идея состоит в том, чтобы получить что-то вроде этого:

  012456789 
0|        |0
  

Обратите внимание на пустые пробелы перед 0 и после 9 в первой строке (затем шаблон продолжается, но нет необходимости записывать все это). Сначала я создаю «пустую» сетку:

 String[][] grid = new String[12][14]
for (int i = 0; i < grid.length; i  ){
    for (int j = 0; j < grid[0].length; j  ){
        grid[i][k] = "";
    }
}
  

Затем я добавляю несколько чисел:

 for (int i = 2; i < grid.length; i  ){
    grid[0][i] = Integer.toString(i-2);
}
  

Наконец, для отображения:

 for (int i = 0; i < grid.length; i  ){
    for (int j = 0;j < grid[0].length; j  ){
        System.out.print(grid[i][j]);
    }
    System.out.println();
}
  

Я ожидаю получить:

-012345678910-

(Предположим, что — это пробел), но я получаю:

01234578910

вообще без пробелов. Если я изменю первую часть кода, чтобы заполнить массив «-» вместо «», я правильно получу «-12345678910-«, как ожидалось. Что здесь не так?

Комментарии:

1. В вашем «Я ожидаю получить» нет пробела перед 10… но что более важно, в какой части вашего кода вы ожидаете , что будет печататься пробел?

2. Вы нигде в своем коде не печатаете пробел… таким образом, это не будет отображаться в выходных данных. Кроме того, ваш ожидаемый и фактический результат точно такой же

3. Я даже не смог напечатать правильное пустое пространство в своем вопросе, lol. Я ожидаю получить: -0123456789- но я получаю 0123456789, предполагая, что — это пробел. Однако mattm ответил на этот вопрос. Я должен использовать » » вместо «» Спасибо.

Ответ №1:

" " не эквивалентно "" . " " это строка с пробелом. "" является пустой строкой.