hejka,
mam takie pytanie-jak moge stworzyc zmienna wypelniona spacjami? tzn wiem ile tych spacji ma byc (przykladowo 10) i potrzebuje stworzyc taka zmienna ktora bedzie miala postac:
zmienna = 10x" " (czyli 10 razy spacja)
pzdr
hejka,
mam takie pytanie-jak moge stworzyc zmienna wypelniona spacjami? tzn wiem ile tych spacji ma byc (przykladowo 10) i potrzebuje stworzyc taka zmienna ktora bedzie miala postac:
zmienna = 10x" " (czyli 10 razy spacja)
pzdr
Jeśli mało, to tak
String zm=" ";
jeśli dużo to tak
StringBuffer pom=new StringBuffer("");
for(int i=0;i<ileSpacji;i++)
pom.append(" ");
Strin zm=pom.toString();
kurcze mialam nadzieje ze jest moze jakas gotowa funkcja typu
wpisz_cos(int ile_wartosc, wartosc)
duzo mam tych zmiennych, a wiekszosc ma miec rozne dlugosci, wiec sporo petli bedzie w programie..
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
System.out.println(fillString(10, '$'));
}
public static String fillString(int count, char c) {
char[] chars = new char[count];
Arrays.fill(chars, c);
return String.valueOf(chars);
}
}
?
Moje rozwiązanie jest bardziej uniwersalne, można powielać String dowolnej długości:
private static String powielString(int count,String str)
{
StringBuffer pom=new StringBuffer("");
for(int i=0;i<count;i++)
pom.append(str);
return new String(pom);
}
ale niestety dużo wolniejsze. Dla count=1 000 000 oraz str=" " czas wykonania funkcji fillString() to 47 milisekund, a czas wykonania funkcji powielString() to 156 milisekund.
@misty, a po co Ci takie zmienne ?
@bogdans
zeby przyspieszyc mozesz sprobowac zrobic tak:
StrinbBuilder sb = new StringBuilder(str.length() * count);
Pozdrawiam.
o forach musze zapomniec, za duzo tego jest w calym programie. Skorzystam z 'fill'. dzieki za wszystkie odpowiedzi!
pzdr
@malamyga, sprawdziłem, sposób z klasą StringBuilder jest mniej więcej o 30% szybszy.