通过可迭代字符串获取元素(番石榴)

时间:2015-12-19 17:26:01

标签: java string guava

我有一个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;。但后来我想让每个角色分开进行其他计算。

1 个答案:

答案 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,它支持对其元素的随机访问。

相关问题