【发布时间】:2014-05-15 22:56:21
【问题描述】:
我的这部分代码似乎不起作用。我觉得问题可能与代码的 stk.peek() 部分有关,但我不确定这是否属实。有什么想法吗?
stk 是我的堆栈,读入代码的第一件事是“(”
if(stk.empty()==true || stk.peek()== "("){
stk.push(post.get(i))
System.out.println("Test1:" +stk.peek());
}
【问题讨论】:
-
问题是您没有正确比较字符串。使用
.equals(),而不是==。 -
为什么写
stk.empty()==true?当然stk.empty()==(1 == 1)会更清楚。或者,stk.empty()== ((1 == 1) == (true != false))? -
@user3580294 你什么意思?我尝试了 stk.equals('(') stk.equals("(") none 似乎工作的多种变体
-
@BoristheSpider stk.empty() 不使用布尔值吗?我认为这会更容易编写和查看。
-
@user2920249 这是因为在这些情况下,您将 堆栈 与
"("进行比较,而不是stk.peek()。堆栈显然不等于String。你想要stk.peek().equals("(")