如何使 StreamTokenizer 将与数字混合的字符识别为单词?
我目前正在开发一个使用逆波兰表示法的计算器。一切正常,除非StreamTokenizer
遇到类似354a
or的东西1b
。我在这里想要的是,StreamTokenizer
将其视为一个词,而不是一个数字后跟一个词。这是我的代码:
sT = new StreamTokenizer(f);
sT.resetSyntax();
sT.eolIsSignificant(false);
sT.wordChars('a', 'z');
sT.wordChars('A', 'Z');
sT.whitespaceChars(32, 32);
sT.parseNumbers();
while (sT.ttype != StreamTokenizer.TT_EOF){
int ttype = sT.ttype;
if (ttype == StreamTokenizer.TT_NUMBER) {
calc.empile(sT.nval);
}
else{
if (!calc.stack.isEmpty()) {
switch (ttype) {
case '+':
calc.plus();
break;
case '-':
calc.moins();
break;
case '*':
calc.mult();
break;
case '/':
calc.div();
break;
}
}
}
sT.nextToken();
}