Если Listконечная цель, как указано в ОП, является конечной целью, то уже принятый ответ остается самым коротким и лучшим. Однако я хочу предоставить альтернативы, использующие потоки Java 8 , которые дадут вам больше преимуществ, если они будут частью конвейера для дальнейшей обработки.
Оборачивая результат функции .split (собственный массив) в поток, а затем преобразуя его в список.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
Если важно, чтобы результат сохранялся в ArrayListсоответствии с заголовком из OP, вы можете использовать другой 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реализацию.
Сами по себе эти примеры кода, кажется, не добавляют много (кроме большего набора текста), но если вы планируете делать больше, как, например, этот ответ о преобразовании String в List of Longs , потоковый API действительно мощный, позволяя направлять ваши операции один за другим.
Ради, вы знаете, полноты.