0

我正在尝试计算主题标签在 CSV 文件中出现的次数。问题是,我跳过了每一列的最后一行,而不是计算 75 个东西,它只计算 70 个。这是代码,抱歉,我是 Java 新手,它可能很简单,但我想不通出去。

import java.util.Scanner;
import java.io.File;

public class HashtagCounter {

public static void main(String[] args) throws Exception {

    int total = 0;
    int count = 0;

    File file = new File("hashtags.csv");
    Scanner input = new Scanner(System.in);
    Scanner scan = new Scanner(file).useDelimiter(",\\s*");

    System.out.println("Please enter a hashtag");
    String keyboard = input.nextLine();



    while(scan.hasNext()){
        //System.out.println(scan.next());
        total = total + 1;

        if(scan.next().equals(keyboard)){
            count = count + 1;
        }
    }


    System.out.println("The hashtag " + keyboard + " appears " + count + " time(s), out of a total of " + total + " entries");
}
}
4

1 回答 1

0

您正在将行的最后一个条目与下一行的第一个条目连接起来。这是因为您的分隔符",\\s*"- 它匹配逗号,但在 csv 中的最后一个条目之后没有逗号。用于"\n|,\\s*"匹配换行符 ( \n) 或逗号。模式A|B匹配匹配任一子模式的字符串。它记录在:http ://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

于 2013-02-01T00:06:24.340 回答