堆栈未正确处理数据

时间:2015-10-15 06:29:32

标签: java string parsing stack

好的,所以我正在研究一种方法,将数字字符串拆分为字符,并将每个字符作为整数顺序推送到两个不同的堆栈中,直到它看到操作员跳过它然后继续将其余字符作为整数推送进入堆栈。我的堆栈会一直显示未被读取的数字。正在阅读的文本文件如下所示:28302830-293817302

public void pushToStack(String line) {

    boolean pushToFirstStack = true;

    for (int i = 0; i < line.length(); i++) {

        if (Character.isDigit(line.charAt(i))) {

            if(pushToFirstStack){
                System.out.print(Character.getNumericValue(line.charAt(i)));
                Stack1.push(Character.getNumericValue(line.charAt(i)));
            }else{
                System.out.print(Character.getNumericValue(line.charAt(i)));
                Stack2.push(Character.getNumericValue(line.charAt(i)));
            }

            pushToFirstStack = !pushToFirstStack;
        } else {
            //sets operator
            if(line.charAt(i) == add){
                return;
            }
            else{
                setAdd = false;
            }
        }
    }
    //displaying stacks debug
    Stack1.display();
    Stack2.display();
}

1 个答案:

答案 0 :(得分:0)

你没有提供示例输出的事实使得它有点难以回答,但我怀疑行pushToFirstStack = !pushToFirstStack;应该在if的else分支中。

现在,您正在使用具有奇数索引的数字构建第一个堆栈,并使用具有偶数索引的数字构建第二个堆栈,从而产生交错输出。