Loading...
Vasilsk avatar Vasilsk 109 Точки

[Useful Info] Java Basics - Алтернативата на new String(string, int)

Здравейте колеги,

Покрай отборния проект за играта ми се наложи да използвам добре познатата функция

String str = new String(string, int), с която лесно се чертае някаква фигура в конзолата. До тук добре, но се оказа, че тази благинка я има само в C#, но не и в Java. Порових се малко из гугъл и открих една много приятна алтернатива, за която е нужна и външна библиотека. Давам линк и указание как се подкарва за тези, на които би им било полезно.

Класа се казва StringUtils, а от тук може да си го изтеглите.

След като си го свалите, отивате в Еклипс на проекта, в който искате да го използвате, давате десен бутон и избирате Build Path -> Add External Archives и избирате commons-lang3-3.3.2.jar файла от папката с архива, който току що сте свалили. След това в самия проект импортвате и библиотеката като горе преди мейн функцията пишете: import org.apache.commons.lang3.StringUtils; Така вече библиотеката е импортната и може да се ползва.

Сега ако искаме например да принтираме 10 пъти символа "*", пишем:

String str = StringUtils.repeat("*", 10);

Успех !

Тагове:
11
Java Advanced
coaster avatar coaster 412 Точки

Speaking of exams... Някой може ли да предложи примерно решение на задачата Sand Glass, написано на Java? Нещо забих :(

<ЛИНК> към задачата

0
g.stoyanov avatar g.stoyanov 776 Точки

Scanner input = new Scanner(System.in);
int size = Integer.parseInt(input.nextLine());
for (int star = size, dot = size / 2; star > -(size + 1); star = star == 1 ? -3
: star - 2, dot = star == -1 ? 0 : dot - 1) {
    System.out.println(MessageFormat.format("{0}{1}{0}", new String(
    new char[size / 2 - Math.abs(dot)]).replace('\0', '.'),
    new String(new char[Math.abs(star)]).replace('\0', '*')));
}

3
pdechkova avatar pdechkova 95 Точки

Може ли малко разяснения?

0
lostm1nd avatar lostm1nd 121 Точки

Ето още едно решение на Java - Sand Glass

Мисля, че е разбираемо какво се случва, ако има нещо питайте.

2
coaster avatar coaster 412 Точки

Какво прави това .replace('\0', '.'), и по-точно какво представлява първият елемент? Методът repace(arg0, arg1) замества първия аргумент с втория, но в този случай какъв е първият.. \0

1
lostm1nd avatar lostm1nd 121 Точки

Когато създадеш масив той се запълва със стойността по подразбиране за дадения тип - за int това е 0, а за char символа \0. Тоест ти заместваш всички стойности по подразбиране с дадения символ.

3
coaster avatar coaster 412 Точки

Еха, супер, благодаря. Дори взех, че разбрах начина - ето решение на задачата The Explorer от изпита на 11 април сутринта (въпреки че май няма да има задача за рисуване), дава 100/100.

0
lostm1nd avatar lostm1nd 121 Точки

Изглежда супер. Радвам се, че сме ти помогнали :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.