Khi làm việc trong một ứng dụng Java, gần đây tôi cần phải tập hợp một danh sách các giá trị được phân tách bằng dấu phẩy để chuyển sang một dịch vụ web khác mà không cần biết trước sẽ có bao nhiêu phần tử. Điều tốt nhất tôi có thể nghĩ ra khỏi đỉnh đầu là một thứ như thế này:
public String appendWithDelimiter( String original, String addition, String delimiter ) {
if ( original.equals( "" ) ) {
return addition;
} else {
return original + delimiter + addition;
}
}
String parameterString = "";
if ( condition ) parameterString = appendWithDelimiter( parameterString, "elementName", "," );
if ( anotherCondition ) parameterString = appendWithDelimiter( parameterString, "anotherElementName", "," );
Tôi nhận ra điều này không đặc biệt hiệu quả, vì có những chuỗi được tạo ra ở khắp mọi nơi, nhưng tôi sẽ làm rõ hơn là tối ưu hóa.
Trong Ruby, tôi có thể làm một cái gì đó như thế này, mà cảm thấy thanh lịch hơn nhiều:
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
Nhưng vì Java thiếu lệnh tham gia, tôi không thể tìm ra thứ gì tương đương.
Vậy, cách tốt nhất để làm điều này trong Java là gì?