2016-08-31 3 views
0

Я новичок в программировании на Java, и меня что-то смущает /t escape-последовательность. Я попытался написать код для таблицы умножения:Java beginner - escape-последовательности

for(int i = 1; i<=10; i++){ 
    for(int j = 1; j<=5; j++){ 
     System.out.println(j + "*" + i + "=" + j*i + "\t"); 
    } 
    System.out.println(); 
} 

Как прийти, что Ouput как это:

enter image description here

Я имею в виду, почему не вкладка «тот же самый размер» в каждый случай, т. е. 1x1 = 1, довольно далек от 1x2 = 2, но 10x1 = 10 и 10x2 = 20 ближе. Кроме того, когда я пытаюсь сделать что-то вроде этого в коде:

System.out.println(j + "*" + i + " = " + j*i + "\t"); 

(уведомления пространства в обе стороны знака равенства), выход путает:

enter image description here

+0

Вы, кажется, misundertanding значения «вкладка». Вкладка не является определенным количеством пробелов в ширину, но она используется для текста, который он делает в вашем коде. –

+0

Вы должны найти функцию «вкладки». Это та же концепция, что и в текстовом редакторе, таком как Word. – QBrute

+0

Ваш второй выход испорчен, потому что некоторые тексты имеют такую ​​же ширину, что и вкладка, поэтому в некоторых случаях он переходит к позиции вкладки в столбце 8, а в других - в столбце 16. –

ответ

6

По умолчанию табуляторы (\t) образуют «таблицу», поэтому столбцы с фиксированным размером (ширина табуляции). В консоли добавляются пробелы до запуска следующего столбца.

Если ваш текст шире (или как широкий) столбца (как в вашем втором примере), то следующий столбец будет пропущен (поэтому добавляется дополнительный столбец), и результат выглядит немного странным.

Вы можете попробовать его с помощью простого текстового редактора, просто нажмите клавишу табулятора, и вы увидите то же поведение:

a  b  c 
looooooong  d  e