我目前正在开发一个小工具,用于分析 Whatsapp 中群聊的使用情况。
我正在尝试使用 whatsapp 日志文件来实现它。我设法将原始格式设置.txt
为以下格式以处理格式化文本:
29. Jan. 12:01 - Random Name: message text
29. Jan. 12:22 - Random Name: message text
29. Jan. 12:24 - Random Name: message text
29. Jan. 12:38 - Random Name: message text
29. Jan. 12:52 - Random Name: message text
到目前为止,一切都很好。问题是有一些软盘行,例如:
29. Jan. 08:42 - Random Name2: message text 1
additional text of the message 1
29. Jan. 08:43 - Random Name2: message text 2
甚至更糟:
15. Jan. 14:00 - Random Name: First part of the message
second part
third part
forth part
fifth part
29. Jan. 08:43 - Random Name2: message text 2
我想我需要一种算法来解决这个问题,但我在编程方面还很新,无法创建如此复杂的算法。
Python中的相同问题:解析whatsApp对话日志
[编辑]
这是我的代码,它不起作用。(我知道这很糟糕)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FormatList {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
FileReader fr = new FileReader("Whatsapp_formated.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("Whatsapp_formated2.txt");
BufferedWriter ausgabe = new BufferedWriter(fw);
String line="";
String buffer="";
while((line = br.readLine())!=null)
{
System.out.println("\n"+line);
if(line.isEmpty())
{
}
else{
if(line.charAt(0)=='0'||line.charAt(0)=='1'||line.charAt(0)=='2'||line.charAt(0)=='3'||line.charAt(0)=='4'||line.charAt(0)=='5'||line.charAt(0)=='6'||line.charAt(0)=='7'||line.charAt(0)=='8'||line.charAt(0)=='9')
{
buffer = line;
}
else
{
buffer += line;
}
ausgabe.write(buffer);
ausgabe.newLine();
System.out.println(buffer);
}
ausgabe.close();
}
}
}
[编辑 2]
最后我想读出文件并分析每一行:
29. Jan. 12:01 - Random Name: message text
我可以知道它是什么时候寄的,谁寄的以及他写了什么/写了多少
如果我现在得到以下行:
additional text of the message 1
我不知道它是什么时候写的,也不知道是谁寄的