Якщо а List- це кінцева мета, як заявлено в ОП, то вже прийнята відповідь все одно є найкоротшою та найкращою. Однак я хочу надати альтернативи за допомогою Java 8 Streams , що дасть вам більше користі, якщо воно буде частиною конвеєра для подальшої обробки.
Обернувши результат функції .split (власний масив) у потік, а потім перетворившись у список.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
Якщо важливо, щоб результат зберігався у ArrayListвідповідності до назви з ОП, ви можете використовувати інший Collectorметод:
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
Або за допомогою api для розбору RegEx:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Зауважте, що ви все ще можете залишити listзмінну введеною як List<String>замість ArrayList<String>. Універсальний інтерфейс Listвсе ще виглядає досить схожим наArrayList реалізацію.
Самі по собі ці приклади коду, здається, не додають багато (за винятком більше набору тексту), але якщо ви плануєте робити більше, як-от ця відповідь про перетворення рядка в список довгих , API потокового потоку є дуже потужним, дозволяючи щоб конвеювати свої операції одна за одною.
Заради, знаєте, повноти.