문자열의 자리 표시자를 큰 루프의 실행중인 번호로 설정하기 만하면됩니다. 편의상 자리 표시자는 %d
입니다. String의 .format 또는 .replace 메소드를 사용하면 더 빨리 수행 할 수 있습니다.숫자를 .format 또는 .replace로 빠르게 문자열에 삽입하십시오.
-1
A
답변
1
나는 응답을 몰랐다 그러나 나는 내가 한 매우 간단한 테스트 그것에 대해 호기심과 지표를 추가하고 그 결과이기 때문에 :
코드 :
@Test
public void test(){
String original = "This is the phrase %d";
long init = System.currentTimeMillis();
for(int i = 0; i < 100000; i++){
System.out.println(String.format(original, i));
}
long end = System.currentTimeMillis();
long init1 = System.currentTimeMillis();
for(int i = 0; i < 100000; i++){
System.out.println(original.replace("%d", String.valueOf(i)));
}
long end2 = System.currentTimeMillis();
System.out.println("Method 1: " + (end-init));
System.out.println("Method 2: " + (end2-init1));
}
결과
방법 1: 1950 방법 2 : 1361
그래서 우리는 현재 C .replace는 String의 형식 메서드보다 빠릅니다.
둘 다 시도해 보셨습니까? 당신의 결과는 무엇입니까? 숫자를 고정 된 자릿수로 포맷 할 수 있습니까? (그렇다면 재사용 할 수있는 문자 배열을 만드는 것이 도움이 될 것입니다 ...) 기본적으로 여기에 충분한 정보를 아직 제공하지 않았습니다. 지금까지 해왔 던 것을 보여주는 [mcve]와 구체적인 성능 요구 사항이 도움이 될 것입니다. –
@JonSkeet 나는이 질문을 방에 던지기 위해 많은 코딩에 집중하고 있었다. 미안 해요, 지침을 잊어 버렸습니다. 정말 내 질문을 생각해야합니다 ... – GreenThor