У меня есть задание друзей в прошлом году, у которого был интересный вопрос, и который я нашел хорошим для практики с манипуляциями с текстовыми файлами в Java.вопрос идет так.
Компания XYZ - это цифровая издательская компания, и вам нужна ваша помощь в разработке небольшого Java-приложения.Приложение Java должно: 1. Подсчитать количество файлов Java, которые заканчиваются на .txt в каталоге / папке.2. Выведите самое длинное слово в каждом файле.
Пример выходных данных приведен ниже (при условии, что имя файла - f1.txt, f2.txt и f3.txt):
Number of Files = 3
Longest Word in f1.txt = strachouming
Longest Word in f2.txt = newstraaach
Longest Word in f3.txt = revolutions
я до сих пор сумел это сделать, но застрял, я не могу найти решение этой проблемы, я довольно новичок в 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;
}
}
Это мой результат:
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
Моя проблема в том, что первые два верхних слова взяты из файла f1.txt, а 2 нижних - из файла f3.txt.как я могу это исправить?
Спасибо за вашу помощь заранее.