有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

公告命令中的java换行符不工作

我目前正在学习Java,并决定开发一个discord机器人只是为了好玩,但我遇到了一个问题。我正在处理一个通告命令,该命令将向某个频道发送通告,但问题是输入时,换行符不会显示在输出中(注意:我使用的是正常换行符“shift+enter”,我没有使用“\n”)。例如,以下是我输入的输入:

-announce Hello there! Hope you're having a wonderful day!

Hello there again! I hope YOU'RE having a wonderful day!

Test

Test

但它将嵌入发送到通道,如下所示: image

这是我的代码:

@Override
    public void onGuildMessageReceived(GuildMessageReceivedEvent event) {
        String[] args = event.getMessage().getContentRaw().split("\\s+");
        String msg = event.getMessage().getContentRaw();
        if (args[0].equalsIgnoreCase("-announce")) {
            if (args.length < 2) {

                EmbedBuilder embed = new EmbedBuilder();
                embed
                        .setDescription("Usage: -announce <test>")
                        .setColor(Color.CYAN);
                event.getChannel().sendMessage(embed.build()).queue();
                embed.clear();
            } else {
                try {
                    TextChannel textChannel = event.getJDA().getTextChannelById("CHANNEL-ID");
                    if (textChannel.canTalk()) {
                        EmbedBuilder embed = new EmbedBuilder();
                        String message = "";
                        for (int i = 1; i < args.length; i++) {
                            message += args[i] + " ";
                        }
                        embed

                                .setColor(Color.CYAN)
                                .setDescription(message);
                        textChannel.sendMessage(embed.build()).queue();
                        embed.clear();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }

共 (1) 个答案

  1. # 1 楼答案

    您正在使用split("\\s+")删除所有换行符。您应该改用substring

    String message = msg.substring(msg.indexOf(' ') + 1);
    embed.setDescription(message);