2012-05-07 4 views
1
에서의 StringBuilder로 번역

이 질문을보고 몇 가지 유사한 나는 그것이 중복되지 생각 : 여기 StringBuilder vs String concatenation in toString() in Java문자열 연결 자바

는 거래이다, 오늘 아침에 얘기를 내 아주 영리한 작업 동료들을 어떻게 자바 최대 8 또는 16 문자열 연결 (나는이 시점에서 확실하지 않다) 문자열 작성기를 최적화합니다. 이 실제로으로 변환되도록

public String test(){ 
    return "a" + "b" + "c" + "d" + "e" + "f"; 
} 

:이 6 문자열 연결의 예입니다 제가 여기서 의미의 막연한 설명되었을 수 있으므로

public String test(){ 
    StringBuilder sb = new StringBuilder(); 
    return sb.append("a").append("b").append("c").append("d").append("e").append("f").toString(); 
} 

나는 이전 대화를 떠나야했습니다 , 맞습니까? 그렇다면 누군가가이 최적화가 8/16 또는 x 완료 될 때까지 정확한 숫자에 대한 세부 정보를 제공 할 수 있습니까?

내가 들었 기 전에 나는 이것에 대해 몰랐다. 사실이라면 잘 알고 있습니다.

+3

당신의 철저한 설명을 찾을 수 있습니다 이 블로그 게시물에서 Java에서 문자열 연결이 어떻게 작동하는지 확인하십시오. http://www.znetdevelopment.com/blogs/2009/04/06/java-string-concatenation/ – verhage

+0

@verhage 매우 멋진 기사 – ant

+0

@verhage 당신의 대답을 받아 들일 것입니다. – ant

답변

1

정확한 숫자는 모르지만 컴파일러가 루프를 반복 할 때 연결이 발생하지 않는 한 일반적으로 문자열을 + 연산자로 연결하는 것에 대해 걱정할 필요가 없습니다. StringBuilder을 명시 적으로 사용해야하거나 심지어 String.concat을 사용해야합니다.

가장 빠른 방법은 데이터가 일정한 지 변수인지에 따라 다릅니다. 귀하의 예제에서 문자열은 에서 "abcdef"까지 연결됩니다. 요청에 따라