我对编码很陌生。尝试用Java编写一个evaluatePostfix函数。我不断得到一个错误:
不兼容的类型:int不能转换为字符堆栈。push(eval(token,a,b));
下面是我的代码块:
private static int evalPostfix(String postfix){
char token = ' ';
int a;
int b;
Queue<Character> postfixQ = new Queue<>();
for (char i : postfix.toCharArray()) {
postfixQ.enqueue(i);
}
Stack<Character> stack = new Stack<>();
while (!postfixQ.isEmpty()){
token = postfixQ.dequeue();
if (isOperand(token)){
stack.push(token);
}
else {
a = stack.pop();
b = stack.pop();
stack.push(eval(token, a, b));
}
}
if(!stack.isEmpty()){
return stack.pop();
}
else {
System.out.println("Invalid postfix expression");
}
}
函数接受后缀表达式并计算结果。
这是我的eval函数:
private static int eval(char op, int a, int b){
int result = -1;
if (op == '+'){
return a + b;
}
else if (op == '-'){
return a - b;
}
else if (op == '*'){
return a * b;
}
else if (op == '/'){
return a / b;
}
else if (op == '^')
return (int)Math.pow(a, b);
return result;
}
问题是方法eval
返回一个int
,您试图将结果推送到堆栈
上。
我不完全确定您在这里要做什么,但这不能编译,因为int
不能直接转换为character
。
您可以通过向char
插入显式强制转换来解决编译问题
stack.push((char)eval(token, a, b));
但这会将eval
的结果转换为char
范围内的值,而对于很容易超出char
[0.65535]范围的值,这是有问题的。
问题内容: 您如何用Java编写(并运行)正确的微基准测试? 我正在寻找一些代码示例和注释,以说明要考虑的各种问题。 示例:基准测试应该测量时间/迭代或迭代/时间,为什么? 问题答案: 有关从Java HotSpot的创建者编写微基准测试的提示: 规则0:阅读有关JVM和微基准测试的著名论文。好的人是布莱恩·格茨(Brian Goetz),2005年。不要对微观基准期望太高;它们仅测量有限范围的J
问题的核心归结为文档,但可能是我没有正确理解其中的一个或多个方面。如果有,请告诉我:-) 假设我的API中有一个或多或少通用的链接关系()来链接相关的帐户。确切的意思会随着上下文而改变,对吧? 在我的公告牌(或索引)上,我可能有一个与该关系的链接来浏览所有帐户。 在另一个资源(例如帐户组)上,它可能只链接到属于该组的帐户的特定子集。 这种关系本身似乎不是正确的地方。尤其是当您考虑到该URL的有效负
大家好,我希望这个程序能够对大写字母进行编码,而不使用其他字符,并通过输出传递它们。例如“你好,世界!”运行程序“URYY\d_YQ!”后应变为我得到的是Yluhreylbowjwboerylqdxk而不是“URYY\dyq!”这就是我应该得到的。如果有人能让我知道我做错了什么,我将不胜感激。提前谢谢。
问题内容: 我在Kotlin中编写了一个小测试,以使用带有算法“ AES / CFB8 / NoPadding”的Cipher实例加密一些文本“ Hello”。(Minecraft的东西) 我现在正尝试在Go中执行相同的操作,但是我无法产生相同的结果。我尝试过的所有不同方法都会产生不同的结果。 这些是我已经浏览过的以下线程/示例,以达到这一点。 如何在Golang中使用RSA密钥对进行AES加密和
问题内容: 我的软件包具有以下结构: 我不确定应如何正确写入文件。 的样子: 但是例如应该看起来如何?我的是: 什么时候应该使用? 问题答案: 很好-它有助于指导导入语句,而无需自动导入模块 http://docs.python.org/tutorial/modules.html#importing-from-a- package 使用和是多余的,仅需要 我认为在导入软件包中使用的最强大的理由之一
我正在尝试使用JSoup获取此URL http://betatruebaonline.com/img/parte/330/ciguen%c3%91al.jpg 相反,正确的 http://betatruebaonline.com/img/parte/330/ciguen%cc%83al.jpg 我该怎么解决这个?多谢了。