为乌龟令牌程序构建nexttoken方法。结束令牌的触发器之一是,如果字符串在子字符串中已经有字母的情况下命中另一个字母,但永远不会输入if语句。如果我特意定义了我知道字母的数组索引,它确实输入了语句。
全局变量:
int Brackets = 0;
String verdi;
String[] strengarray = new String [30];
TurtleTokenizer TT;
int startIndex = 0;
int endIndex;
public String nextToken() {
strengarray = verdi.split("");
boolean ok = true;
boolean Letter = false;
int endtemp = endIndex;
for(int i = startIndex; i<strengarray.length; i++)
{
if (strengarray[i].equals("F") || strengarray[i].equals("R") || strengarray[i].equals("L") ) // This if statement is never entered!
{
if( Letter == true)
break;
else
Letter = true;
}
if(strengarray[i].equals( "{"))
{
Brackets++;
}
if(strengarray[i].equals( "}"))
{
Brackets--;
}
endtemp = i;
}
endIndex = endtemp;
String sub = verdi.substring( startIndex, endIndex);
startIndex = endIndex;
return sub + "\n";
}
hasmore方法:
public boolean hasMoreTokens() {
if (Brackets >0)
return true;
else
return false;
}
主要方法:
public class TestTurtle {
public static void main(String [ ] args)
{
String st = "F0R4L10";
TurtleTokenizer Leonardo = new TurtleTokenizer(st);
do
{
System.out.println(Leonardo.nextToken() + "\n");
}
while(Leonardo.hasMoreTokens());
}
}
答案 0 :(得分:0)
必须有一个编码错误或其他东西,再次编写相同的代码并且它有效。