इस बारे में कैसा है?
public String fillSpaces(int len) {
/* the spaces string should contain spaces exceeding the max needed */
String spaces = " ";
return spaces.substring(0,len);
}
संपादित करें: मैंने अवधारणा का परीक्षण करने के लिए एक सरल कोड लिखा है और यहाँ जो मैंने पाया है।
विधि 1: एक लूप में एकल स्थान जोड़ रहा है:
public String execLoopSingleSpace(int len){
StringBuilder sb = new StringBuilder();
for(int i=0; i < len; i++) {
sb.append(' ');
}
return sb.toString();
}
विधि 2: 100 रिक्त स्थान और लूप संलग्न करें, फिर प्रतिस्थापित करें:
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 रिक्त स्थान प्राप्त कर रहा हूं:
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
और 10,000,000 रिक्त स्थान के लिए:
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
प्रत्यक्ष आवंटन और पुनरावृत्ति का संयोजन हमेशा कम समय लेता है, विशाल स्थान बनाते समय औसतन 60ms कम। छोटे आकार के लिए, दोनों परिणाम नगण्य हैं।
लेकिन कृपया टिप्पणी जारी रखें :-)