【发布时间】:2016-01-13 11:45:38
【问题描述】:
好的,所以我正在研究一种将数字字符串拆分为字符并将每个字符作为整数顺序推送到两个不同堆栈中的方法,直到它看到操作员跳过它,然后继续将其余字符作为整数推送入栈。我的堆栈不断显示未被读取的数字。正在读取的文本文件如下所示: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)。