如何“偷看”Java扫描程序上的下一个元素?
也就是说,如何在不删除迭代器的情况下获取迭代器的下一个元素?因为我可能想要或可能不想根据其内容删除它。我有一个文件扫描程序,我使用Scanster next()方法迭代XML标签。
提前致谢。
也就是说,如何在不删除迭代器的情况下获取迭代器的下一个元素?因为我可能想要或可能不想根据其内容删除它。我有一个文件扫描程序,我使用Scanster next()方法迭代XML标签。
提前致谢。
这是另一个基于包装器的解决方案,但这个解决方案只有一个内部扫描仪。我把另一个留给展示一个解决方案,这是一个不同的,可能是更好的解决方案。同样,此解决方案不会实现所有内容(并且未经测试),但您只需要实现打算使用的那些部分。
在此版本中,您将保留对实际内容的引用。next()
import java.util.Scanner;
public class PeekableScanner
{
private Scanner scan;
private String next;
public PeekableScanner( String source )
{
scan = new Scanner( source );
next = (scan.hasNext() ? scan.next() : null);
}
public boolean hasNext()
{
return (next != null);
}
public String next()
{
String current = next;
next = (scan.hasNext() ? scan.next() : null);
return current;
}
public String peek()
{
return next;
}
}