这是一个非常丑陋的解决方案,但是您可以创建一个包装类,围绕
Scanner该包装类保留两个内部
Scanner对象。您可以
peek()通过使第二台扫描仪先于另一台来获得功能
这是一个非常基本的解决方案(只是让您了解我在说什么),并没有实现所需的全部功能(但是您只需实现将要使用的那些部分)。(同样,这未经测试,所以要加一点盐)。
import java.util.Scanner;public class PeekableScanner{ private Scanner scan1; private Scanner scan2; private String next; public PeekableScanner( String source ) { scan1 = new Scanner(source); scan2 = new Scanner(source); next = scan2.next(); } public boolean hasNext() { return scan1.hasNext(); } public String next() { next = (scan2.hasNext() ? scan2.next() : null); return scan1.next(); } public String peek() { return next; }}


