gpt4 book ai didi

java - 除法运算符的 StreamTokenizer 行为 "/"

转载 作者:行者123 更新时间:2023-11-29 03:10:07 25 4
gpt4 key购买 nike

查看 StreamTokenizer 的演示代码 here .当字符串中有/时似乎无法正常工作(只需在StringReader中的字符串之间添加/)。这是来自上述链接的代码,

StreamTokenizer tokenizer = new StreamTokenizer(
new StringReader("Mary had 1 little lamb..."));

while(tokenizer.nextToken() != StreamTokenizer.TT_EOF){

if(tokenizer.ttype == StreamTokenizer.TT_WORD) {
System.out.println(tokenizer.sval);
} else if(tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
System.out.println(tokenizer.nval);
} else if(tokenizer.ttype == StreamTokenizer.TT_EOL) {
System.out.println();
}
}

例如,对于字符串"Mary had 1 little lamb...",输出是

Mary
had
1.0
little
lamb...

对于字符串,"Mary had 1/little lamb...",输出为

Mary
had
1.0
  • / 是否用作 EOF token ?如果是,为什么?
  • 有什么方法可以将 / 区分为不同于 EOF 的不同标记。

最佳答案

根据 the documentation , /StreamTokenizer中的注释符。在它之后的所有内容,直到 EOL 或 EOF 将被忽略并且不会被标记化。

例如,继续您给出的示例,如果字符串是 "Mary had 1/2\n little lamb...",则 2 被注释out 并且不会被标记化,并且标记化将在 \n 之后恢复。所以输出将是:

Mary
had
1.0
little
lamb...

关于java - 除法运算符的 StreamTokenizer 行为 "/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29847039/

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