Подтвердить что ты не робот

Преобразование Iterable в массив

Мне нужно вернуть массив String. Я использую Guava для разделения String. См. Код ниже

Iterable<String> arrayOfValues =  Splitter.on(";").split(myString);

возвращает Iterable. но мне нужен String[]. Есть ли способ дать Iterator< Element > и преобразовать его в Array[]. Большое спасибо

4b9b3361

Ответ 2

Если вы используете простой метод Java String.split(regex), вы в порядке. Он возвращает строку [].

"my;string".split(";")

String[] splits = mystring.split(";");

Не используйте причудливые библиотеки, если они вам не нужны.

Ответ 3

Вы также можете использовать Guava FluentIterable:

FluentIterable.from(Splitter.on(":").split(mystring)).toArray(String.class)

Ответ 4

В guava вы можете преобразовать его как "Follows

 String test= "Welcome to java world";
 Iterable<String> tokens=Splitter.on(" ").split(test);
 String array[]=Iterables.toArray(tokens,String.class);

Если вы просто хотите получить доступ к элементам Iterator, таким как массив, тогда нет необходимости конвертировать. Вы можете напрямую обращаться к этим элементам по индексу

например

 System.out.println(Iterables.get(tokens,2));

Ответ 5

Несмотря на то, что в этом вопросе говорится: "Преобразовать Iterator в массив", ответы только объясняют, как преобразовать Iterable в Array.

Итак, чтобы преобразовать Iterator в Array с Guava, вы можете использовать Iterators.toArray(Iterator<? extends T> iterator, Class<T> type).