【发布时间】:2019-09-22 15:04:22
【问题描述】:
我正在尝试为我的不和谐机器人创建一个计算器命令!
在这段代码中,我尝试将用户输入转换为双精度(例如用户输入:*calculate 1 + 1)并发送包含双精度值的消息! 但是这不起作用,所以我尝试将双精度转换回字符串!
public void onMessageReceived(MessageReceivedEvent event) {
Message message = event.getMessage();
String content = message.getContentRaw();
MessageChannel channel;
channel = event.getChannel();
String[] args = content.split(" ");
if (args[0].equalsIgnoreCase("!calculate")) {
if (args.length == 1) {
channel.sendMessage("error message").queue();
}else {
String input = content;
input = input.replace(args[0], "");
double result = Double.parseDouble(text);
channel.sendMessage(result).queue();
}
}
}
在我在结果和输出之间放入一个 double.toString 之后,因为它不会打印双精度。
String output = Double.toString(result);
channel.sendMessage(output).queue();
第一次尝试没有输出! 第二个有一个“数字格式异常”! 我该如何解决这个问题?
【问题讨论】:
-
理想情况下,您应该始终捕获错误的数字字符串。因此,就像您已经为空字符串所做的那样抛出错误消息,您还应该将
Double.parseDouble(text);放在try-catch块中,如果第二个参数不是正确的数字,则返回错误消息。
标签: java discord-jda