java - 如何过滤打印流

标签 java irc chatbot

我正在尝试使用 PircBotX 编写一个基本的 irc 聊天机器人。我想将聊天内容输出到文本文件,但找不到方法。我正在编写自己的代码,并且可以将控制台输出到一个文件,其中的行如下所示:

13:12:09.110 [botPool0-bot0] INFO org.pircbotx.InputParser - :jdbener!jdbener@ jdbener.tmi.twitch.tv PRIVMSG #irish_00 :yay

我希望将其写入文件,如下所示:

13:12 < Twitch> Jdbener: yay

这是我的编写器文件的代码:

public class writer extends OutputStream {
public void write(int b) throws IOException {
     String Output = String.valueOf((char)b);
     FileWriter writer = new FileWriter("output-dirty.txt", true);
     writer.append(Output);
     writer.close();
     testbot.stringB.append(Output);
 }
 }

如果您需要任何其他信息,请告诉我,我提前感谢您的帮助!

最佳答案

如果问题是如何做到这一点:

13:12:09.110 [botPool0-bot0] INFO org.pircbotx.InputParser - :jdbener!jdbener@jdbener.tmi.twitch.tv PRIVMSG #irish_00 :yay

看起来像这样:

13:12 < Twitch> Jdbener: yay

你可以这样做:

 String a = "13:12:09.110 [botPool0-bot0] INFO org.pircbotx.InputParser - :jdbener!jdbener@jdbener.tmi.twitch.tv PRIVMSG #irish_00 :yay";

 String[] b = a.split(":");

 String c =   b[0] + ":" + 
              b[1] + 
              "<Twitch>" +
              b[3].split("!")[0].replace(b[3].split("!")[0].charAt(0), Character.toUpperCase(b[3].split("!")[0].charAt(0))) + 
              ": " +
              b[b.length - 1];

使用 System.out.println(c); 进行测试将输出:13:12<Twitch>Jdbener: yay

当然,我假设与原始的String有一定的一致性。 。如果答案不太有效,请粘贴更多示例输入 Strings并将更新答案。

关于java - 如何过滤打印流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26207686/

相关文章:

dialogflow-es - 更改 DialogFlow 机器人中的日/月语言

java - 将当前游戏中的得分添加到 Android 中的长期统计数据中

Java将2个字符串与变量中的精确匹配项相匹配

java - 使用 SHA 256 散列并使用 AES 加密

c# - 在 Twitch 中使用 IRC-Client 时 WPF-App 无法使用 [C#]

Azure QnA 在 Facebook 聊天中显示 URL

java - 调用 Rest 身份验证 Controller 时出现 EOFException

c++ - 为什么 boost::asio 似乎什么都不做

android - 选择正确的聊天协议(protocol)实现

facebook-graph-api - Facebook 登录将页面连接到应用程序,页面显示已订阅但应用程序未订阅