我有一个Iterable字符串(番石榴库)。我怎样才能从中获取元素。这是我的代码:
public static String hillcipher(String str)
{
String hillcipher="";
Iterable<String> pieces = null;
for (int i=0; i<=str.length()-1; i++){
char c = str.charAt(i);
if (Character.isLetter(c)){
pieces = Splitter.fixedLength(2).split(str);
}
}
System.out.println(pieces);
return hillcipher;
在这里,我将一个字符串分成两个字符。例如&#34; java&#34;将被分成&#34; ja&#34;,&#34; va&#34;。但后来我想让每个角色分开进行其他计算。
答案 0 :(得分:1)
有多种方法可以从迭代中获取元素:
迭代每个元素:
for (String piece : pieces) {
// do something
}
或
Iterator<String> iterator = pieces.iterator();
while (iterator.hasNext()) {
String piece = iterator.next();
// do something
}
等
只迭代你想要的前N个元素:
Iterator<String> iterator = pieces.iterator();
if (iterator.hasNext()) {
String firstPiece = iterator.next();
// do something
if (iterator.hasNext()) {
String secondPiece = iterator.next();
// do something else
// etc.
}
}
使用Guava&#39; Iterables
中的辅助函数:
String thirdPiece = Iterables.get(pieces, 2);
或
String lastPieceOrEmpty = Iterables.getLast(pieces, "");
等
但是,如果您只想像列表一样访问元素,则可以使用Splitter.splitToList(CharSequence)
。它与Splitter.split(CharSequence)
相同,但它不会返回潜在的延迟评估Iterable
,而是返回一个填充的ImmutableList
,它支持对其元素的随机访问。