java - 如何使用“sendMessage()”代码发送 Doubles?
问题描述
我正在尝试为我的不和谐机器人制作一个计算器命令!
在这段代码中,我尝试将用户输入转换为双精度(例如用户输入:*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();
第一次尝试没有输出!第二个有一个“数字格式异常”!我该如何解决这个问题?
解决方案
如果您遇到数字格式异常,您可能正在尝试转换包含其他字符的字符串。在将其转换为双精度之前尝试打印“输出”并查看它的外观。