【发布时间】:2017-04-03 09:09:51
【问题描述】:
我需要一些有关此代码的帮助。我希望我的程序计算与描述的模式匹配的每个单词的频率。
public class Project {
public static void main(String[] args) throws FileNotFoundException{
Scanner INPUT_TEXT = new Scanner(new File("moviereview.txt")).useDelimiter(" ");
String pattern = "[a-zA-Z'-]+";
Pattern r = Pattern.compile(pattern);
int occurences=0;
while(INPUT_TEXT.hasNext()){
//read next word
String Stringcandidate=INPUT_TEXT.next();
//see if pattern matches (boolean find)
if(r.matcher(Stringcandidate).find()) {
occurences++; //increment occurences if pattern is found
String moviereview = m.group(0); //retrieve found string
String moviereview2 = moviereview.toLowerCase(); // ???
System.out.println(moviereview2 + " appears " + occurences);
if(occurences>1){
System.out.println(" times\n");
}
else{
System.out.println(" time\n");
}
}
INPUT_TEXT.close();//Close your Scanner.
}
}
【问题讨论】:
-
你能说得更具体点吗?现在发生了什么?我们不是来为您运行代码的。此外,我们没有您的文本文件
-
我帮不了你。当您甚至懒得正确格式化(缩进)代码以显示代码结构时,我拒绝查看代码。
-
欢迎来到 StackOverflow。如果您遵循帮助中心的指南,您最有可能获得有用的答案。例如,像这个问题:“寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。”
-
您是否曾经将变量
occurences设置为 0 以外的值?如果没有,您的 IDE 应该警告您。更多提示:How to debug small programs. -
请举例说明“moviereview.txt”的内容。代码现在出现的方式对所有单词进行全局计数。我认为您希望与模式匹配的不同单词单独计算。因此,您需要记住在地图或基数树或您喜欢的任何数据结构/算法中找到的单词。
标签: java frequency word-count