gpt4 book ai didi

java - 我如何计算一行中单词的出现次数

转载 作者:行者123 更新时间:2023-12-03 23:00:22 25 4
gpt4 key购买 nike

我是 java 的新手。我想计算特定行中单词的出现次数。到目前为止,我只能计算单词数,但不知道如何计算出现次数。

有没有简单的方法可以做到这一点?

Scanner file = new Scanner(new FileInputStream("/../output.txt"));
int count = 0;
while (file.hasNextLine()) {
String s = file.nextLine();
count++;
if(s.contains("#AVFC")){
System.out.printf("There are %d words on this line ", s.split("\\s").length-1);
System.out.println(count);
}

}
file.close();

输出:

    There are 4 words on this line 1

There are 8 words on this line 13

There are 3 words on this line 16

最佳答案

我能想到的最简单的方法是使用 String.split("\\s"),它将根据空格进行拆分。

然后有一个 HashMap 包含一个单词作为键,值为它被使用的次数。

   HashMap<String, Integer> mapOfWords = new HashMap<String, Integer>();

while (file.hasNextLine()) {
String s = file.nextLine();
String[] words = s.split("\\s");
int count;
for (String word : words) {
if (mapOfWords.get(word) == null) {
mapOfWords.put(word, 1);
}
else {
count = mapOfWord.get(word);
mapOfWords.put(word, count + 1);
}
}
}

您请求跳过包含特定单词的字符串的实现

   HashMap<String, Integer> mapOfWords = new HashMap<String, Integer>();

while (file.hasNextLine()) {
String s = file.nextLine();
String[] words = s.split("\\s");
int count;

if (isStringWanted(s) == false) {
continue;
}

for (String word : words) {
if (mapOfWords.get(word) == null) {
mapOfWords.put(word, 1);
}
else {
count = mapOfWord.get(word);
mapOfWords.put(word, count + 1);
}
}
}

private boolean isStringWanted(String s) {
String[] checkStrings = new String[] {"chelsea", "Liverpool", "#LFC"};

for (String check : checkString) {
if (s.contains(check)) {
return false;
}
}
return true;
}

关于java - 我如何计算一行中单词的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22305141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com