我想读取一个文件并获取其中唯一单词的数量。到目前为止,我能够逐行读取文件(readline),将其存储在数组列表中,然后操作字符串。
我的输入将如下所示:
(或(或电视派对)(学习))(=> 考试(不是(或电视派对)))
基本上,我正在尝试将每一行从前缀转换为中缀,并且我需要找出输入文件中涉及的所有差异变量(如 tv、party 等),以便我可以构建一个真值表并测试案例。
目前我正在处理数组列表中的所有字符串。有更好的方法吗?
如果要查找变量,请尝试:
String line = "(OR (OR tv party) (study)) (=> exam (NOT (OR tv party)))";
Scanner sc = new Scanner(line);
sc.useDelimiter("[^a-z]");
Set<String> set = new TreeSet<String>();
while(sc.hasNext()) {
String word = sc.next();
if (!word.isEmpty()) {
set.add(word);
}
}
System.out.println(set);
这打印:
[exam, party, study, tv]
拆分行并将单词存储到Set
. 最后,您将获得独特的单词。如果您也想知道单词计数,请使用map<String, Integer>
其中键(字符串)是单词,值(整数)是计数器。