有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

解析如何将输入字符串解析为单个标记?(爪哇)

我试图将一个表达式字符串解析为单独的令牌单元,并将其放入数组列表中。所以基本上,我得到了这样一个表达:

(3 + 5)

一旦完成解析,它在数组列表中应该是这样的:

"(", "3", "+", "5", ")"

在这种情况下,应该忽略空白。此外,如果表达式包含“++”或“-”之类的运算符,则它们应存储为一个标记,而不是两个。例如,(++3)将变成“(”、“++”、“3”、”)

我不确定我的方法是否正确,但我的想法是使用for循环遍历每个字符,看看是否匹配

更新:

    for(int i=0; i<expressionString.length(); i++) {
        //cast char into ascii int
        int ascii = (int) charAt(i);

        //appending to token if one of operator symbols
        if( ascii >= 40 && ascii <= 47 || ascii == 91 || ascii == 93){
            token.append((char) ascii);

        //appending to token if it's a num  
        } else if ( ascii >= 48 || ascii <=57) {
            token.append((char) ascii);

            //check if next char is a num, if so, append to token
            while ((int) charAt(i+1) >= 48 || (int) charAt(i+1) <=57) {
                //increment i in for loop to check
                i++;
                token.append((int) charAt(i));
            }

        }
        //  
    }

共 (0) 个答案