好的,所以我正在研究一种方法,将数字字符串拆分为字符并将每个字符作为整数顺序地推入两个不同的堆栈,直到它看到操作员跳过它,然后继续推动其余的字符作为整数放入堆栈中。我的堆栈不断显示未被读取的数字。正在读取的文本文件看起来像这样: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();
}
你能打印你得到的输出吗? –
注意:为什么不把字符串分成字符数组然后迭代它呢?它会避免每次都使用'line.charAt(i)'。 –