gpt4 book ai didi

java - 如何使用 StreamTokenizer 确保特定标记之间有空格?

转载 作者:行者123 更新时间:2023-12-01 15:53:46 25 4
gpt4 key购买 nike

我正在使用 StreamTokenizer 来解析文本,我需要确保某些标记之间有空格。例如,“5+5”是非法的,但“5 + 5”是有效的。

我真的不太了解StreamTokenizer;我阅读了 API,但找不到任何可以帮助我的东西。我怎样才能做到这一点?

最佳答案

您必须将空格设置为“普通字符”。这意味着它们将作为代币单独返回,但不会折叠到其他代币中。示例:

StreamTokenizer st = new StreamTokenizer(new StringReader("5 + 5"));
st.ordinaryChar(32);
int tt = st.nextToken(); // tt = TT_NUMBER, st.nval = 5
tt = st.nextToken(); // tt = 32 (' ')
tt = st.nextToken(); // tt = 43 ('+')
tt = st.nextToken(); // tt = 32 (' ')
tt = st.nextToken(); // tt = TT_NUMBER, st.nval = 5
tt = st.nextToken(); // tt = TT_EOF

不幸的是,您必须在解析器中处理空白标记。我建议滚动你自己的标记器。除非您正在做一些快速而肮脏的事情,否则 StreamTokenizer 几乎总是错误的选择。

关于java - 如何使用 StreamTokenizer 确保特定标记之间有空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5479154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com