gpt4 book ai didi

java - 用 java 构建我自己的 StreamTokenizer

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

你好我正在构建自己的 StreamTokenizer 来满足我的需求。就像 java 的 StreamTokenizer 一样,我有一个 nextToken() 方法,它返回一个表示找到的数据类型的整数。我想做的是,如果 token 与我使用的任何正则表达式模式不匹配,它将返回 token 本身作为整数代码。例如,标记“$”将导致返回一个数字,这样 println(number) 将打印 $。我不知道该怎么做,有人吗?

谢谢!

最佳答案

如果您想从一堆正则表达式构建词法分析器,请查看解析器生成器,例如 ANTLR .

如果你真的想自己动手,那么你可以随时使用以下习惯用法:

// Matches tokens foo and bar
Pattern myTokenDefinition = Pattern.compile("^(?:foo|bar)");

public boolean hasNext() {
return sourceText.length() != 0;
}

public String next() {
if (sourceText.length() != 0) {
Matcher m = myTokenDefinition.matcher(sourceText);
String token;
if (m.find()) {
token = m.group();
} else {
token = sourceText.substring(0, 1);
}
sourceText = sourceText.substring(token.length());
return token;
}
throw new NoSuchElementException();
}

关于java - 用 java 构建我自己的 StreamTokenizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5486588/

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