- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么说 (String,int)?我什么时候宣布它是双倍的?
java:159: error: no suitable method found for put(String,int)
myVariables.put(exprArray[i], 0);
^
method Map.put(String,Double) is not applicable
(argument mismatch; int cannot be converted to Double)
method AbstractMap.put(String,Double) is not applicable
(argument mismatch; int cannot be converted to Double)
method HashMap.put(String,Double) is not applicable
(argument mismatch; int cannot be converted to Double)
1 个错误
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Stack;
public class PostFixCalc {
public static boolean isCommandPromptOn = true;
public static HashMap<String,Double> myVariables = new HashMap<String, Double>();
public static String[] input;
public static boolean variableCalcuation = false;
public static void main(String[] args)
{
Scanner myScanner = new Scanner(System.in);
System.out.println("Integer postfix calculator with memory by XXXXXX");
do
{
System.out.print("\n> ");
input = myScanner.nextLine().split("\\s");
commandOperator(input);
}while(isCommandPromptOn);
}
public static void commandOperator(String[] command)
{
variableCalcuation = false;
if(command.length > 1)
{
if(command[1].equals("="))
{
variableCalcuation = true;
double temp = postFixExpr(Arrays.copyOfRange(command,2,command.length));
if(temp != -123) {
myVariables.put(command[0], temp);
}
return;
}
}
for (int i = 0; i < command.length; i++)
{
switch (command[i])
{
case "quit":
isCommandPromptOn = false;
break;
case "clear":
myVariables.clear();
break;
case "delete":
myVariables.remove(command[i + 1]);
break;
case "var":
System.out.println(myVariables);
break;
case "":
System.out.println("Invalid input!");
break;
case "about":
System.out.println("Postfix calculator by Samuel Fipps");
System.out.println("Operators and functions: + - * / ^ sin cos tan sqrt");
System.out.println("Commands: var clear quit about");
break;
default:
postFixExpr(command);
return;
}
}
}
public static double postFixExpr(String[] exprArray)
{
double result = -123;
Stack<Double> exprStack = new Stack <Double>();
for (int i =0; i < exprArray.length;i++)
{
try {
switch (exprArray[i]) {
case "+":
double sum = exprStack.pop() + exprStack.pop();
exprStack.push(sum);
break;
case "-":
double b = exprStack.pop();
double a = exprStack.pop();
exprStack.push(a - b);
break;
case "*":
exprStack.push(exprStack.pop() * exprStack.pop());
break;
case "/":
double b1 = exprStack.pop();
double a1 = exprStack.pop();
if (b1 == 0) {
System.out.println("Division by zero. Undefined.");
result = -123;
break;
}
exprStack.push((double) (a1 / b1));
break;
case "^":
double b2 = exprStack.pop();
double a2 = exprStack.pop();
exprStack.push((double) (Math.pow(a2, b2)));
break;
// case "!":
// double a3 = exprStack.pop();
//exprStack.push(factorialCalculator(a3));
//break;
case "":
System.out.println("Invalid Input. Please try again!");
break;
default:
if (myVariables.containsKey(exprArray[i])) {
exprStack.push(myVariables.get(exprArray[i]));
} else {
try {
exprStack.push(Double.parseDouble(exprArray[i]));
} catch (Exception e) {
myVariables.put(exprArray[i], 0);
try {
exprStack.push(myVariables.get(exprArray[i]));
} catch (Exception e1) {
System.out.println("Error: " + e);
}
}
}
break;
}
}
catch (Exception e){
if(!variableCalcuation){
System.out.println("Error! Too many operators.");
}else
{
System.out.println("Error! Too many operators. ");
return -123;
}
}
}
if(exprStack.size() == 0){
if(variableCalcuation){
return -123;
}
return result;
}
else if(exprStack.size() == 1 ){
result = exprStack.pop();
System.out.println(result);
return result;
}
else
{
if(variableCalcuation){
System.out.println("Error! Not enough operators.");
return -123;
}
System.out.println("Error! Not enough operators.");
return result;
}
}
public static double factorialCalculator(double num){
if(num == 0){
return 1;
}
else{
return num * factorialCalculator(num -1);
}
}
}
最佳答案
int
不能隐式转换为 Double
,但是 double
可以转换为 Double
。
改变
myVariables.put(exprArray[i], 0);
到
myVariables.put(exprArray[i], 0.0);
将解决您的问题。
关于java:159: 错误: 找不到适合 put(String,int) 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50092834/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!