【发布时间】:2014-07-04 09:42:56
【问题描述】:
我只是在学习 bukkit,我想像使用所有新的编程语言(我知道基本的 Java)一样制作一个计算器,但我似乎无法找到一种方法来添加某人输入的 args 而我找不到bukkit 的教程。任何人都可以帮我解析这些数字,因此如果您尝试添加不是双精度的东西,它会给出不同的错误消息。我尝试添加一个 switch 语句来执行此操作,但没有奏效。
这是我目前得到的......
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
@SuppressWarnings("unused")
Player player = (Player) sender;
if(commandLabel.equalsIgnoreCase("calc")){
if(args.length == 1){
String n1 = args[0];
if (true){
if (args[0].equalsIgnoreCase("+") || args[0].equalsIgnoreCase("-")){
String n2 = args[1];
if (args[0].equalsIgnoreCase("+")){
double answer = Double.parseDouble(n1) + Double.parseDouble(n2);
sender.sendMessage("The answer is " + answer);
}
}else{
sender.sendMessage("Please use + or -");
}
}
}else{
sender.sendMessage(ChatColor.RED + "Incorrect Syntax");
}
}
return false;
}
}
【问题讨论】:
-
这读起来真的很混乱。另外,为什么会有一个 if(true),你可能可以摆脱它。您遇到什么错误?
-
if(true) 在那里,因为我打算稍后再放一些东西。当我尝试进行加法运算(我还没有进行减法运算)时,我收到了“语法错误”消息
-
请发布您遇到的确切错误(复制并粘贴)
-
其实我现在看到一个问题... n1 = args[0] 将是一个数字(最好),2 行你有 if(args[0].equalsIgnoreCase(+) 或 (- ). 你是否一直使用正确的 args[] 索引?哦,另一个。你正在比较 args.length == 1。这意味着唯一的索引是 args[0],你稍后再尝试阅读args[1],这将引发 ArrayIndexOutOfBoundsException,因为这需要 args.length 为 2
标签: java calculator bukkit