buna ne dersin?
public String fillSpaces(int len) {
/* the spaces string should contain spaces exceeding the max needed */
String spaces = " ";
return spaces.substring(0,len);
}
EDIT: Ben kavram ve burada ne buldum test etmek için basit bir kod yazdım.
Yöntem 1: bir döngüde tek boşluk ekleme:
public String execLoopSingleSpace(int len){
StringBuilder sb = new StringBuilder();
for(int i=0; i < len; i++) {
sb.append(' ');
}
return sb.toString();
}
Yöntem 2: 100 boşluk ve döngü ekleyin, ardından alt dize:
public String execLoopHundredSpaces(int len){
StringBuilder sb = new StringBuilder(" ")
.append(" ").append(" ").append(" ")
.append(" ").append(" ").append(" ")
.append(" ").append(" ").append(" ");
for (int i=0; i < len/100 ; i++) {
sb.append(" ")
.append(" ").append(" ").append(" ")
.append(" ").append(" ").append(" ")
.append(" ").append(" ").append(" ");
}
return sb.toString().substring(0,len);
}
12.345.678 boşluk oluşturduğum sonuç:
C:\docs\Projects> java FillSpace 12345678
method 1: append single spaces for 12345678 times. Time taken is **234ms**. Length of String is 12345678
method 2: append 100 spaces for 123456 times. Time taken is **141ms**. Length of String is 12345678
Process java exited with code 0
ve 10.000.000 alan için:
C:\docs\Projects> java FillSpace 10000000
method 1: append single spaces for 10000000 times. Time taken is **157ms**. Length of String is 10000000
method 2: append 100 spaces for 100000 times. Time taken is **109ms**. Length of String is 10000000
Process java exited with code 0
Doğrudan ayırma ve yinelemeyi birleştirmek, büyük alanlar oluştururken her zaman daha az zaman, ortalama 60 ms daha az zaman alır. Daha küçük boyutlar için her iki sonuç da ihmal edilebilir.
Ama lütfen yorum yapmaya devam edin :-)