Java 读取多个文本文件并从每个文本文件中查找最长的单词

Java 读取多个文本文件并从每个文本文件中查找最长的单词,java,text-files,java.util.scanner,Java,Text Files,Java.util.scanner,我去年有一个朋友的任务,其中有一个有趣的问题,我发现它非常适合在java中练习文本文件操作。问题是这样的 XYZ公司是一家数字出版公司,希望您帮助开发一个小型 Java应用程序。Java应用程序应该: 1.计算目录/文件夹中以.txt结尾的java文件数。 2.显示每个文件中最长的单词 输出示例如下所示(假设文件名为f1.txt、f2.txt和f3.txt): 到目前为止,我已经成功地做到了这一点,但我仍然无法找到解决这个问题的方法。我对java还相当陌生,并且仍在学习这些概念 package

我去年有一个朋友的任务,其中有一个有趣的问题,我发现它非常适合在java中练习文本文件操作。问题是这样的

XYZ公司是一家数字出版公司,希望您帮助开发一个小型 Java应用程序。Java应用程序应该: 1.计算目录/文件夹中以.txt结尾的java文件数。 2.显示每个文件中最长的单词

输出示例如下所示(假设文件名为f1.txt、f2.txt和f3.txt):

到目前为止,我已经成功地做到了这一点,但我仍然无法找到解决这个问题的方法。我对java还相当陌生,并且仍在学习这些概念

package longestWordTxt;

import java.util.Scanner;
import java.io.*;

public class Longestword {

         public static void main(String [ ] args) throws FileNotFoundException {
             File f = new File("C:/Users/Dell/Desktop/java");
                int count = 0;
                for (File file : f.listFiles()) {
                    if (file.isFile() && (file.getName().endsWith(".txt"))) { 
                          count++; 
                        } 
                }
                System.out.println("Number of files: " + count);


           //calling function longestWord
        new Longestword().getLongestWords();
     }


         //funtion longestWord
    public String getLongestWords() throws FileNotFoundException {
        String longestWord = "";
        String current;
        String [] word = new String[4];
        int i;

        for(i=1;i<5;i++) {

        Scanner scan = new Scanner(new File("C:/Users/Dell/Desktop/java/f"+i+".txt"));




        while (scan.hasNext()) {
            current = scan.next();
            if ((current.length() > longestWord.length()) && (!current.matches(".*\\d.*"))) {
                longestWord = current;
                }
            }
        System.out.println("Longest word in f"+i+".txt = " + longestWord);

        }

        longestWord.replaceAll("[^a-zA-Z ]", "").split("\\s+");

                return longestWord;
            }

    }
我的问题是前两个最上面的单词来自f1.txt文件,下面两个来自f3.txt文件。我怎样才能解决这个问题


提前感谢您的帮助。

您创建的程序计算出了迄今为止它读取的所有文件中最长的单词。这意味着“灾难性”是文件f1和f2中最长的单词

如果要单独获取每个文件的最长单词,而不是与其他文件进行比较,则应在
getLongestWords()
方法中for循环的每次迭代结束时添加这行代码。
 longestWord = "";
longestWord=”“


另外,方法
getLongestWords()
可以是一个
void
方法,因为您不需要使用它返回的字符串。

如果您在发布之前花一点时间清理代码,这对我们真的很有帮助。删除重复的空行、固定缩进和使用有意义的变量名都有助于传达您的意图并帮助我们理解。对不起。我会考虑你说的话的。谢谢,这很有效。我忘记了它将单词保留在字符串中,并且没有清除它,因此它将第一个文件世界与f2.txt单词进行比较,非常感谢。
Number of files: 4
Longest word in f1.txt = disastrous
Longest word in f2.txt = disastrous
Longest word in f3.txt = heartbreaking
Longest word in f4.txt = heartbreaking
 longestWord = "";