我已经在文本文件中保存了一些好的推文,格式如下:
Country:Brazil_result.txt Date: \r\n09/19/14 TweetTextExtract: #Brazil on track to becoming the leader of #wind #energy production in Latin America http://t.co/MFJjNPxodf
Country:Brazil_result.txt Date: \r\n09/19/14 TweetTextExtract: @ConceptOfficial FOLLOW ME GUYS PLEASE I LOVE YOU SO MUCH BRAZIL LOVE YOUx16
Country:Brazil_result.txt Date: \r\n09/19/14 TweetTextExtract: @JamesFenn90 plenty teams travelled far more in Brazil from their bases to each game.I'm sure eng can manage a trip to Amsterdam etc etc
现在我要做的是从文本文件中逐行读取然后按"TweetTextExtract: "
拆分行,但由于某种原因,我一直收到ArrayIndexOutOfBoundsException:1
错误,我可以' t看看为什么每一行都有"TweetTextExtract: "
项。这是控制台中的错误:
Country:Brazil_result.txt Date: \r\n09/19/14 @ConceptOfficial FOLLOW ME GUYS
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at WhatToThink.main(WhatToThink.java:28)
这条推文的行有"TweetTextExtract: "
个术语,继续它的行也是如此。我不确定为什么这会破裂。这是代码:
String folderPath = "C:/Users/me/workspace/Sentiment Analysis/Good Data";
File fin = new File(folderPath + "/Brazil_result" + ".txt");
FileInputStream fis = new FileInputStream(fin);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line = null;
while ((line = br.readLine()) != null) {
String[] stringline = line.split("TweetTextExtract: ");
System.out.println(stringline[0] + stringline[1]);
//System.out.println(line);
}
br.close();
答案 0 :(得分:1)
当我运行它时,它实际上并没有为我提供异常。但是如何通过在splited String中动态打印元素来避免此错误。以下增强循环将为您提供相同的结果..
String[] stringline = line.split("TweetTextExtract: ");
for (String s : stringline) {
System.out.print(s);
}
System.out.println("");
你可以通过查看结果找到你自己在stringline数组中存在多少元素。
答案 1 :(得分:1)
您的问题几乎肯定是您的文件的错误文本编码。将文件保存为UTF-8(或UTF-16),然后使用
new InputStreamReader(fis, "UTF-8") //or UTF-16
如果您在上述构造函数中使用的编码与文本文件中的编码不匹配,则会出现乱码,然后split
即使在第一行也无效。
如果你想保留文本文件的原始编码,只需找出它是什么并改为使用它。
答案 2 :(得分:0)
你可以使用类似的东西:
if (line.contains("TweetTextExtract: ")){
String[] stringline = line.split("TweetTextExtract: ");
System.out.println(stringline[0] + stringline[1]);
}
else{
System.out.println("Line doesn't't contain \"TweetTextExtract: \"");
}