首页 > 解决方案 > 如何使用“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();

第一次尝试没有输出!第二个有一个“数字格式异常”!我该如何解决这个问题?

标签: javadiscord-jda

解决方案


如果您遇到数字格式异常,您可能正在尝试转换包含其他字符的字符串。在将其转换为双精度之前尝试打印“输出”并查看它的外观。


推荐阅读