This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
// is this better? sb.append( source.substring(nStart, nEnd) );
// or is this? sb.append( source, nStart, nEnd );
My initial thought was that the one that doesn't call String.substring() would be better (since a new String object doesn't have to be created) but looking at the code that one seems to copy the chars one by one in a loop, while the String.substring() one eventually uses System.arraycopy().
The easiest way to tell would just time it. Run both methods (try with a large string) and see if there is any difference.
Joined: Sep 20, 2005
Originally posted by Jeff Storey: The easiest way to tell would just time it. Run both methods (try with a large string) and see if there is any difference.
Heh. I had trouble deciding whether to post in the Intermediate forum or the Advanced one. I chose Advanced and it gets bumped to Beginner.
Anyway, for my app it doesn't really matter. Even though I'm doing it in a loop, it's not really on a critical path. So I probably won't go to the trouble of timing it. I just thought it was an interesting API issue.
Originally posted by Vishal Pandya: StringBuffer and StringBuilder, both are almost identical classes except the methods in StringBuffer are thread safe (synchronised). So definitely, StringBuilder works faster.
Understood. What I meant was I'm interested in the efficiency trade-offs between sb.append(source.substring(nStart, nEnd)) and sb.append(source, nStart, nEnd) on StringBuilder and also on StringBuffer. I wouldn't say it's likely, but it could be that one is better on StringBuilder and the other is better on StringBuffer.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com
subject: best way to append a substring to a StringBuilder/StringBuffer