【发布时间】:2019-07-29 18:34:23
【问题描述】:
我正在尝试使用 String 类的 split 方法将 "loremIpsum.txt" 文件扫描到 String 以将每个单词存储在数组的不同位置,最后使用 HashSet 查找是否有任何单词重复文本。
但 Eclipse 无法识别该文件,即使它位于同一个包中。我想知道我的代码是否有问题?
package Lab5;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashSet;
import java.util.Scanner;
public class Lorem {
public static void main(String[] args) {
String[] loremIpsum = null;
try {
loremIpsum = new Scanner(new File("loremIpsum.txt")).next().split(" ");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println(loremIpsum.length);
HashSet h = new HashSet();
for(int i=0;i<loremIpsum.length;i++) {
String word=loremIpsum[i];
System.out.println(word);
if(h.contains(word)) {
System.out.println("we found a duplicate");
} else {
h.add(word);
}
}
}
}
【问题讨论】:
-
旁注:
Scanner#next使用空格作为默认分隔符,因此调用split(" ")将生成大小为 1 或可能为 0 的字符串数组。您应该使用Scanner#nextLine和split(" ")。 -
可能是 XY 问题而不是重复问题。对于刚开始的 Java 练习,似乎问题可能更多在于假定文本文件与代码位于同一目录中,而不是如何完成。
标签: java split java.util.scanner hashset lorem-ipsum