One simpler way for this situation is to note that you can always append an empty string:
// For the first iteration, use a no-op separator
String currentSeparator = "";
for (String s : list) {
builder.append(currentSeparator);
builder.append(s);
// From the second iteration onwards, use this
currentSeparator = separator;
}
Alternatively (and preferrably) use Guava’s Joiner class to start with 🙂
This “joiner” scenario is almost always the one given for this requirement – so just use Joiner. For other scenarios, either use a regular for loop or use the condition as per your code.