我目前正在开发一个将字符串解析为单个标记的项目。这一切都很好,但我被困(显然)。我目前想测试字符串是否匹配关键字(即true,false,class,inherits等)并将该字符串作为标记返回(请注意我没有使用Java API提供的StringTokenizer,IIRC)。
以下是我的关键字代码:
if (isAlpha(ch)){
System.out.println("Current character:" + ch);
letters += ch;
charIndex--;
while(isDigit(nextChar()) || isAlpha(nextChar())){
Character c = nextChar();
System.out.println("C:" + c);
letters += c;
charIndex++;
System.out.println("After another character:" + letters);
}
if(letters == "class"){
token = new Token(token.CLASS, letters);
}
if(letters == "inherits"){
token = new Token(token.INHERIT, letters);
}
if(letters == "if"){
token = new Token(token.IF, letters);
} //etc etc
我已经在测试中将问题分离为以字母字符结尾的字符串(即“有趣”;此标记/字符串将是标识符)。它继续循环“y”并打印“当前字符:y”。它适用于像“funny6”这样的字符串。我可能会错过显而易见的事情(可能与空白有关),但任何建议都会受到赞赏。
谢谢!