PrintWriter writer = new PrintWriter("C:\\Users\\markc\\OneDrive\\Documents\\NetBeansProjects\\TwitterTest\\src\\text\\output.txt");
for (int i = 0; i < tweetsArray.size(); i++) {
writer.println(tweets.get(i).getText());
}
这里我将tweets.get(i).getText()的内容逐行写入名为output.txt的新文本文件。
这些推文的部分内容包含以“http”开头的链接,如何从文本文件中删除所有链接?
由于 示例文本文件如下所示: http://imgur.com/efk3ifA
答案 0 :(得分:0)
PrintWriter writer = new PrintWriter("C:\\Users\\markc\\OneDrive\\Documents\\NetBeansProjects\\TwitterTest\\src\\text\\output.txt");
for (int i = 0; i < tweetsArray.size(); i++) {
writer.println(tweets.get(i).getText().replaceAll("(?m)^http.*", ""));
}`
答案 1 :(得分:0)
PrintWriter writer = new PrintWriter("C:\\Users\\markc\\OneDrive\\Documents\\NetBeansProjects\\TwitterTest\\src\\text\\output.txt");
for (int i = 0; i < tweetsArray.size(); i++) {
if(tweets.get(i).getText().indexOf("http") != 0 )
writer.println(tweets.get(i).getText());
}
答案 2 :(得分:0)
我觉得正则表达式可能是最好的方法。对不起,我不知道您需要捕获除链接之外的所有特定模式(我们可以假设它是http和下一个空格之间的任何内容)。如果我能弄明白的话,我会更新帖子,不应该太难。
Pattern p = Pattern.compile(regex pattern);
String line;
while ((line = reader.readline()) != null)
Matcher m = p.matcher(line);
if (m.find())
writer.write(m.group() + "\r\n");
编辑:不确定这是否是最佳方式,但它应该有效
Pattern p = Pattern.compile("(.*?)(?:http.*? )(.*$)");
String line;
while ((line = reader.readline()) != null)
Matcher m = p.matcher(line);
if (m.find())
writer.write(m.group(1) + m.group(2) + "\r\n");
答案 3 :(得分:0)
从大多数答案中可以看出,这是一款选择正则表达式的游戏。这适用于不包含空格的网址,以下信息的其余部分保持不变 - i like pie. http://pie.com is great
变为i like pie. is great
。摆弄它here。
PrintWriter writer = new PrintWriter("C:\\Users\\markc\\OneDrive\\Documents\\NetBeansProjects\\TwitterTest\\src\\text\\output.txt");
for (int i = 0; i < tweetsArray.size(); i++) {
writer.println(tweets.get(i).getText().replaceAll("http\\S*", ""));
}
编辑:
对于后人来说,这是一个稍微高效的版本,不会为每条推文重新编译RegEx模式。:
PrinterWriter writer = new PrinterWriter("...");
Pattern linkPattern = Pattern.compile("http\\S*");
for(...) {
writer.println(linkPattern.matcher(tweets.get(i).getText()).replaceAll(""));
}