Tôi chưa bao giờ tìm được cách làm gọn gàng (er).Cách thanh lịch nhất để nối một danh sách các giá trị với dấu phân cách bằng Java là gì?
Giả sử tôi có danh sách/mảng chuỗi.
abc
def
ghi
jkl
Và tôi muốn nối chúng thành một chuỗi duy nhất giới hạn bởi một dấu phẩy như sau:
abc,def,ghi,jkl
Trong Java, nếu tôi viết một cái gì đó như thế này (tha thứ cú pháp),
String[] list = new String[] {"abc","def","ghi","jkl"};
String str = null;
for (String s : list)
{
str = str + s + "," ;
}
System.out.println(str);
tôi sẽ nhận được
abc,def,ghi,jkl, //Notice the comma in the end
Vì vậy, tôi phải viết lại vòng trên cho vòng lặp như sau
...
for (int i = 0; i < list.length; i++)
{
str = str + list[i];
if (i != list.length - 1)
{
str = str + ",";
}
}
...
Điều này có thể được thực hiện một cách thanh lịch hơn trong Java không?
Tôi chắc chắn sẽ sử dụng một StringBuilder/Buffer cho hiệu quả, nhưng tôi muốn minh họa trường hợp tại điểm mà không quá dài dòng. Bằng cách thanh lịch, tôi có nghĩa là một giải pháp tránh được sự kiểm tra xấu xí (?) if
bên trong vòng lặp.
Xem http://stackoverflow.com/questions/205555/the-most-sophisticated-way-for-creating-comma-separated-strings-from-a -collection/205712 # 205712 – gimel
http://stackoverflow.com/questions/285523 – toolkit