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
Tr00peR avatar Tr00peR 566 Точки

Става и с вградени библиотеки, пак е на един ред, но малко по-дълго :)

String str = new String(new char[10]).replace("\0", "*");

10
Vasilsk avatar Vasilsk 109 Точки

Така е, но идеята е, че с тази библиотека кода е по-лесно четим, а и тя предлага и други готини функции :)

3
dsmiteva avatar dsmiteva 13 Точки

privatestaticfinalString repeatChar(char c,int length){
char[] data =newchar[length];
Arrays.fill(data, c);
returnnewString(data);
}

или нещо като това методче.

1
zomtorg avatar zomtorg 36 Точки

Много добър пост, наистина ми помогна със задачата, която имахме да правим като група.

1
hristolilov avatar hristolilov 394 Точки

Правиш си просто нов метод:

public string newString(char ch, int p){

string str = "";

     for(int i = 0;i<p;i++){

     str+=ch;

}

return str;

И си го викате както си знаете:

newString('.',5);

 

Пиша наизуст, но попринцип работи, само коригирайте каквото не му хареса на eclipse :)

3
g.stoyanov avatar g.stoyanov 776 Точки
public static String newString(char ch, int size) { 
    return new String(new char[size]).replace('\0', ch) 
}
4
ZvetanIG avatar ZvetanIG 907 Точки

Външните библиотеки са  хубаво нещо, но трябва да имаме впредвид, че на изпита няма да може да ги ползваме.  Джъдж системата няма да ги поддържа. За жалост трябва да разчитаме само на добрата стара Java.

1
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
pdechkova avatar pdechkova 95 Точки

Ще има ли такава задача на изпита? Бях прочела, че май няма да има?

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