公告命令中的换行符不起作用

Posted

技术标签:

【中文标题】公告命令中的换行符不起作用【英文标题】:Line Breaks In Announcement Command Not Working 【发布时间】:2021-10-26 02:29:14 【问题描述】:

我目前正在学习 Java,并决定开发一个不和谐的机器人只是为了好玩,但我遇到了一个问题。我正在研究一个宣布命令,它将向某个频道发送一个公告,但问题是在输入时换行符不会显示在输出中(注意:我使用的是正常的换行符“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】:

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

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

【讨论】:

以上是关于公告命令中的换行符不起作用的主要内容,如果未能解决你的问题,请参考以下文章

VS 中的 HTML 换行格式不起作用?

换行符在 UI​​Label 中不起作用

换行符在 Textarea 输出中不起作用

javascript正则中使用[\s\S]*用来匹配任意字符(包括换行符)的方法不起作用

换行符 \n 从 Firebase 加载文本时不起作用

Jquery自动完成换行符不起作用