0

我正在使用堆栈将中缀转换为后缀表达式。我宣布cur=input.charAt(i)。我想检查 cur 是否是一个数字。如果是这样,我会将它添加到字符串后缀的末尾。我写了代码:

String nonNumbers= "+_*/()"
while (!nonNumbers.contains(s.peek().charValue())){
                       postFixExp=postFixExp+cur;}

由于我推入堆栈的字符自动转换为字符对象(我猜),所以我使用 charValue() 从堆栈中获取字符并查看字符串 nonNumbers 是否包含此字符。

但是我在尝试编译时收到错误消息“错误:在 (!nonNumbers.contains(s.peek().charValue())){ ^ 符号:方法 charValue() 位置:类对象时找不到符号。有人可以请帮我解决这个问题?提前非常感谢!

4

1 回答 1

0

方法 contains() 不能应用于字符参数。它必须是一个 CharSequence,这意味着您可以将 string 或 stringbuffer 类型的对象传递给它。我建议使用

s.peek().toString();

代替

s.peek().charValue()
于 2014-05-13T00:31:06.337 回答