我需要返回String
陣列。我使用番石榴拆分String
。請參閱下面的代碼轉換可迭代到陣列
Iterable<String> arrayOfValues = Splitter.on(";").split(myString);
它返回一個Iterable
。但我需要一個String[]
。有什麼方法可以給Iterator<Element>
並將其轉換爲Array[]
。非常感謝
我需要返回String
陣列。我使用番石榴拆分String
。請參閱下面的代碼轉換可迭代到陣列
Iterable<String> arrayOfValues = Splitter.on(";").split(myString);
它返回一個Iterable
。但我需要一個String[]
。有什麼方法可以給Iterator<Element>
並將其轉換爲Array[]
。非常感謝
如果使用普通的Java String.split(正則表達式)方法,你的罰款。它返回一個String []。
"my;string".split(";")
String[] splits = mystring.split(";");
如果你不需要它們,不要使用花哨的庫。
您還可以使用番石榴的FluentIterable:
FluentIterable.from(Splitter.on(":").split(mystring)).toArray(String.class)
番石榴可以按如下
String test= "Welcome to java world";
Iterable<String> tokens=Splitter.on(" ").split(test);
String array[]=Iterables.toArray(tokens,String.class);
轉換它,如果你只是想訪問迭代器的元素,如一個數組,那麼無需轉換。您可以通過索引
直接訪問這些元素e.g
System.out.println(Iterables.get(tokens,2));
這些問題即使說「轉換迭代器陣列」,答案只能解釋如何可迭代轉換爲數組。
所以,迭代器轉換爲磁盤陣列和番石榴可以用Iterators.toArray(Iterator<? extends T> iterator, Class<T> type)
。
沒有番石榴,你可以一個Iterable<String>
轉換成數組像這樣的東西
public static <String> String[] toArray(Iterable<String> itr) {
ArrayList<String> ret = new ArrayList<>();
for(String t : itr) {
ret.add(t);
}
return ret.toArray(new String[]);
}
這是一個有點很難寫這個功能的通用版本,由於myriad issues with generic arrays in Java,所以小心行事。
Iterables#指定者不是公共 – guai
@guai,是的,它是。 – falmp
你知不知道是否有像這樣但沒有番石榴的單一代碼?只是爲了他人的利益 –