我将如何在Java中制作字符预读方法?我有一个文本文件(假设为TextFile.txt),如果需要使用特殊字符(例如{= +;等),则需要先读取单个字符并识别它,并将其作为Y型标记返回。如果该字符不是特殊字符(例如数字或字母),则应向前看是否存在特殊字符或空格,当出现特殊字符或空格时,程序应将该字符集返回为类型为X的令牌。如果程序读取一个数字,然后再读取另一个数字,然后是字母,则它应仅返回类型Z的两个数字。
例如,在TextFile.txt中有以下文本:
{ test; 123test test5
test/-=test}
程序将通读文件,看到一个“ {”,将该标记返回为Y,看到空白,忽略它,看到“ t”,因为这不是一个特殊字符,请向前看并看到另一个字母,直到到达“;”,并返回“ test”作为类型X的令牌。程序应读取“ 123”,将其返回为Z,然后读取“ test”并返回X。
我知道该程序应如何工作,但我不知道将什么用于预读字符阅读器。我看了看Scanner类,但是那里没有nextChar()方法(这很有用)。
最佳答案
我认为您真的不需要任何前瞻性字符,只需将整个文本读取为字符串并遍历其char数组即可。检查每个char是否有isDigit或isLetter-如果已将其添加到字符串缓冲区,则将缓冲区的内容刷新到包含所有标记的列表中。如果缓冲区为空并且字符是数字,请在遇到除数字以外的任何内容时立即设置标志并刷新。那我应该猜。
关于java - 角色向前看,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7971596/