Nếu a List
là mục tiêu cuối cùng như OP đã nêu, thì câu trả lời đã được chấp nhận vẫn là câu trả lời ngắn nhất và tốt nhất. Tuy nhiên tôi muốn cung cấp các lựa chọn thay thế bằng cách sử dụng Luồng Java 8 , điều đó sẽ mang lại cho bạn nhiều lợi ích hơn nếu đó là một phần của đường ống để xử lý thêm.
Bằng cách gói kết quả của hàm .split (một mảng gốc) vào một luồng và sau đó chuyển đổi thành một danh sách.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
Nếu điều quan trọng là kết quả được lưu trữ theo ArrayList
tiêu đề từ OP, bạn có thể sử dụng một Collector
phương pháp khác :
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
Hoặc bằng cách sử dụng api phân tích cú pháp RegEx:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Lưu ý rằng bạn vẫn có thể xem xét để lại list
biến được nhập List<String>
thay vì ArrayList<String>
. Giao diện chung cho List
vẫn có vẻ tương tự đủ để ArrayList
thực hiện.
Tự thân, các ví dụ mã này dường như không thêm nhiều (ngoại trừ việc nhập nhiều hơn), nhưng nếu bạn dự định làm nhiều hơn, như câu trả lời này về việc chuyển đổi Chuỗi thành Danh sách dài , ví dụ, API phát trực tuyến thực sự mạnh mẽ bằng cách cho phép để đường ống hoạt động của bạn từng cái một.
Vì lợi ích của bạn, bạn biết đấy, sự đầy đủ.