Изходът ми изглежда така
000(05.00) *|
001(25.00) ******|
002(36.00) **********|
В идеалния случай бих искал моята продукция да бъде тази ....
000(05.00) * |
001(25.00) ****** |
002(36.00) **********|
Имам тази променлива ...
private static String MAX_REP = "|";
Какво мога да направя, за да MAX_REP да отпечатва тази лента за всеки ред на същото място?
Отговори:
1 за отговор № 1Първо, запишете всяка линия като String.
След това изчислете дължината на String. Добавете N-k интервали преди MAX_REP, когато печатате, където N е желаната позиция и k е дължината на дадената линия.
0 за отговор № 2
Без да виждате кода си, е трудно да разберете какво правите, но от вида на изхода ви искате да попълните броя на пространствата, които не са заети от звезди до някаква точка |
.
Ако знаете броя на *
s, тогава това е просто, като се извади броят на звездите numStars
от общия брой позиции на символи numChars
преди |
:
int numSpaces = numChars - numStars;
След това добавяте толкова много места. Например, използвайки org.apache.commons.lang3.StringUtils
:
String myStr = output + StringUtils.repeat("*", numStars) + StringUtils.repeat(" ", numSpaces) + "|";