首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中如何在标记化时处理运算符(StreamTokenizer)

在Java中如何在标记化时处理运算符(StreamTokenizer)
EN

Stack Overflow用户
提问于 2011-04-19 05:59:22
回答 5查看 3.1K关注 0票数 3

我正在用Java编写一个记号赋予器,它必须处理操作符,并且记号之间的空格字符不是必需的。

我需要将"<=“之类的东西识别为标记,同时还需要识别"<”和"=“。

现在我有:

代码语言:javascript
复制
if (token == '<')
        if (nextToken == '=')
            this.tokenList.add(27); // <=
        else
            // add 2 tokens separately

有没有办法让StreamTokenizer自己来做这件事?我已经通读了API,但我什么也没看到。

我可以指定可以算作一个的令牌组合吗?理想情况下,getNextToken会一次删除两个令牌。

谢谢!

EN

Stack Overflow用户

发布于 2015-06-18 15:26:29

StreamTokenizer是处理这种情况的非常基本的工具。

您可以创建自己的lookAhead函数来解决您的问题。

你读一个'<‘,然后调用你的前视,如果有'=’或没有-相应地采取行动

你可以使用堆栈来保存你之前的状态。

PS:对于更大的表达式,这会变得更加复杂,如果你想要更多的功能,你当然应该深入研究词法分析器和解析器

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5709393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档