我正在尝试计算文本文件中具有以下格式的单词数量:
TITEL####URL####ABSTRACT\n
TITEL####URL####ABSTRACT\n
TITEL####URL####ABSTRACT\n
像这样:
Available line####http://en.wikipedia.org/wiki/Available_line####In voice,
Marwan al-Shehhi####http://en.wikipedia.org/wiki/Marwan_al-Shehhi####Marwan etc.
Theodore Beza####http://en.wikipedia.org/wiki/Theodore_Beza####Theodore Beza etc.
我计算单词的代码如下:
public static int countTotalWords() {
totalWords = 0;
try {
FileInputStream fis;
fis = new FileInputStream(fileName);
Scanner scan = new Scanner(fis);
while (scan.hasNext()) {
totalWords++;
scan.next();
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Opgave1.class.getName()).log(Level.SEVERE, null, ex);
}
return totalWords;
}
我认为它有效......
我想只计算摘要中的单词,因此忽略标题和URL。我猜测####可以用来跳过每一行的第一部分,但对于我的生活,我无法弄清楚如何。任何帮助表示赞赏!
答案 0 :(得分:1)
您可以拆分字符串:
String s = "TITEL####URL####ABSTRACT\n";
String[] tokens = s.split("#+");
String abstractText = tokens[2];
然后计算单词,你可以进一步分裂:
int count = abstractText.split("\\s+").length;
注意:如果您使用Java 7+并且文件不是太大,您也可以阅读:
List<String> lines = Files.readAllLines(file, charset);
答案 1 :(得分:0)
答案 2 :(得分:0)
假设您已经修复了4个哈希分隔字符串,您可以使用此代码来计算单词的数量:
public static int countTotalWords() {
totalWords = 0;
try {
FileInputStream fis;
fis = new FileInputStream(fileName);
Scanner scan = new Scanner(fis);
while (scan.hasNext()) {
String wordsString = scan.next().substring(str.lastIndexOf("####") + 4, str.length());
String[] wordsArr = wordsString.split(" ");
int noOfWords = wordsArr.length;
totalWords = totalWords + noOfWords;
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Opgave1.class.getName()).log(Level.SEVERE, null, ex);
}
return totalWords;
}