java - 读取多个文本文件并从每个文本文件中查找最长的单词
问题描述
我有一个朋友去年的作业,其中有一个有趣的问题,我发现它非常适合在 java 中练习文本文件操作。问题是这样的。
XYZ 公司是一家数字出版公司,希望您帮助开发一个小型 Java 应用程序。Java 应用程序应该: 1. 计算目录/文件夹中以 .txt 结尾的 java 文件的数量。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 文件,而底部两个单词来自 f3.txt 文件。我该如何解决?
提前感谢您的帮助。
解决方案
您创建的程序从它读取的所有文件中计算出迄今为止最长的单词。这意味着“灾难性”是文件 f1 和 f2 中最长的单词。
如果您想分别获取每个文件的最长单词,而不是与其他文件进行比较,您应该在getLongestWords()
方法中 for 循环的每次迭代结束时添加这行代码。
longestWord = "";
该方法getLongestWords()
也可以是一种void
方法,因为您不需要使用它返回的字符串。
推荐阅读
- angular - 我无法使用我的项目 npm run sample 运行此命令
- javascript - Use maps.googleapi.com with "same-origin" cross origin policy
- image - 带有自动表 addImage 的 JSPDF
- python - Pytest:runtimeerror 线程“主线程”中没有当前事件循环
- email - 团队不显示通过 SendGrid 发送的电子邮件
- python - 模块“sib_api_v3_sdk”没有属性“SMTPApi”
- yaml - 如何在 github 操作中使用 terraform 解密 Iam_user 的 pgp 密钥
- excel - 使用 VBA 更改粘贴特殊设置
- python - Python/Pandas:如何从数据框的列中删除诸如 MR.、MS.、MISS 之类的称呼
- pdf - 签名后 PDF 损坏