找到文件中出现最长单词的行号

时间:2016-04-07 01:54:49

标签: java arraylist

您好我需要找到文件中最长字出现的行号。如果存在两个或更多相同最长长度的不同单词,则仅跟踪第一个单词。我已经完成了对最长单词的跟踪,但我需要帮助查找最长单词的行。这是我找到最长单词的代码:

        while(scan2.hasNextLine()){
            String line = scan2.nextLine();
            if(line.contains(longestWord)){
                longestWordList.add(longestWord);
            }
            else{
                longestWordList.add(null);
            }
        }

1 个答案:

答案 0 :(得分:1)

您需要跟踪当前行号,最长字的行号以及最长字的长度。对于每一行,通过拆分空格和标点符号将行拆分为单词数组。您可以使用正则表达式执行此操作。然后查看每个单词是否长于最长的单词。如果找到新的最长字,则记录当前行号并记录新的最长字长。

int lineNumLongest = 0, lineNumCurrent = 0, longestLength = 0;
while(scan2.hasNextLine()) {
    lineNumCurrent++;
    String[] words = scan2.nextLine().split("[ .?!,;:/\\\\]");
    for (String word : words) {
        if (word.length() > longestLength) {
            lineNumLongest = lineNumCurrent;
            longestLength = word.length();
        }
    }
}