Nexttoken方法在遍历数组时跳过if语句

时间:2014-03-28 23:51:36

标签: java tokenize

为乌龟令牌程序构建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());
    }
}

1 个答案:

答案 0 :(得分:0)

必须有一个编码错误或其他东西,再次编写相同的代码并且它有效。