使用Primes的布尔表达式标记

时间:2013-11-16 16:41:57

标签: java tokenize boolean-expression

在考虑质数时,我必须将一个布尔表达式标记为一个名为tokens的数组列表。 (撇号)

我的代码适用于输入,例如

  1. A'+ B:[A',B]
        B'+ A:[B',A]
        A'B'C + A:[A'B'C,A]
        AB + C'D:[AB,C'D]
        A'B'C:[A',B',C]
  2. 但只要输入字符串的最后一个字符是撇号,就不会起作用,例如:     A '+ B'     AB + C”     A'B'C'

    public static void tokenize(String expression)
    {
        String current = "";
        String temp = "";
        int counter=0;
        for(int i = 0; i < expression.length(); i++)
            {
                char c = expression.charAt(i);
                if(counter==0 && (c=='+' || c=='*'))
                {
                    tokens.add(current);
                    limit++;
                    current = "";
                    if(tempUsed)
                    {
                        tokens.add(temp);
                        limit++;
                        tempUsed=false;
                    }
                    continue;
                }
                else if(c=='(')
                {
                    counter++;
                }
                else if(c==')')
                {
                    if(i+1<expression.length())
                    {
                        if(expression.charAt(i+1)=='\'')
                        {
                            temp = "("+current+")\'";
                            tempUsed = true;
                        }
                    }
                    counter--;
                }
                if(c!='(' && c!=')')
                {
                    if(!(tempUsed && c=='\''))
                        current += c;
                }
            }
            tokens.add(current);
            limit++;
    }
    

    有什么想法?任何帮助将不胜感激。谢谢!

0 个答案:

没有答案