이건 어때요?
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 더 적은 시간이 걸립니다. 작은 크기의 경우 두 결과 모두 무시할 수 있습니다.
그러나 의견을 계속하십시오 :-)