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

часть исходного кода System.out.println ("год:" + год + "\ t" + "rate_year:" + rate_year + "\ t" + "rate_month:" + rate_month);

Но когда я это печатаю. . . год: 10 rate_year: 0.4 rate_month: 0.03333333333333333

Это печатает сначала "\ t", почему все "\ t" не адаптированы ???

0
SeongMin Choi 11 Сен 2018 в 06:29

1 ответ

Лучший ответ

«\ T» переходит к следующей позиции табуляции. Если немного изменить текстовое описание, обратите внимание на выравнивание:

System.out.println("year : "+year+"\t"+"rate_year : "+rate_year+"\t"+"rate_month : "+rate_month);
System.out.println("year : "+year+"\t"+"ry : "+rate_year+"\t"+"rm : "+rate_month);

Выход:

year : 10   rate_year : 0.4 rate_month : 0.333333    
year : 10   ry : 0.4        rm : 0.333333

Я считаю, что проблема просто в том, где столбец вкладок опускается.

С другой стороны, если целью является выравнивание столбцов, может быть лучше использовать printf и определенные размеры столбцов. См., Например, этот ответ о форматировании с помощью \ t

Примере:

for (int i = 0; i < 12; ++i) {
        System.out.printf("year : %3d rate_year : %6f rate_month : %-6f\n", 
                i,
                rate_year,
                rate_month);
}

Выход:

year :   8 rate_year : 0.400000 rate_month : 0.333333  
year :   9 rate_year : 0.400000 rate_month : 0.333333      
year :  10 rate_year : 0.400000 rate_month : 0.333333  
year :  11 rate_year : 0.400000 rate_month : 0.333333  
0
KevinO 11 Сен 2018 в 03:58