2016-12-16 4 views
-1

문자열의 자리 표시자를 큰 루프의 실행중인 번호로 설정하기 만하면됩니다. 편의상 자리 표시자는 %d입니다. String의 .format 또는 .replace 메소드를 사용하면 더 빨리 수행 할 수 있습니다.숫자를 .format 또는 .replace로 빠르게 문자열에 삽입하십시오.

+0

둘 다 시도해 보셨습니까? 당신의 결과는 무엇입니까? 숫자를 고정 된 자릿수로 포맷 할 수 있습니까? (그렇다면 재사용 할 수있는 문자 배열을 만드는 것이 도움이 될 것입니다 ...) 기본적으로 여기에 충분한 정보를 아직 제공하지 않았습니다. 지금까지 해왔 던 것을 보여주는 [mcve]와 구체적인 성능 요구 사항이 도움이 될 것입니다. –

+0

@JonSkeet 나는이 질문을 방에 던지기 위해 많은 코딩에 집중하고 있었다. 미안 해요, 지침을 잊어 버렸습니다. 정말 내 질문을 생각해야합니다 ... – GreenThor

답변

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의 형식 메서드보다 빠릅니다.

+1

다음은 일부 읽기 http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro- benchmark-in-java – Kayaman

+0

@Kayaman 감사합니다! – cralfaro

+0

나는 형식 문자열이있는 곳에서 작업하고 적절한'char []'을 생성 한 다음 관련 문자를 바꾸는 것보다 훨씬 빠른 옵션이 있다고 의심한다. 매번. –