gpt4 book ai didi

java - 统计java中一对单词出现的次数

转载 作者:行者123 更新时间:2023-12-01 10:51:23 27 4
gpt4 key购买 nike

如何获取给定字符串上的单词对示例

快,快棕色,棕色狐狸,狐狸跳跳过等等...

然后数一下它出现了多少次?

下面的代码只能计算单个单词。

 import java.util.*;
import java.util.Map;
import java.util.HashMap;

public class Tokenizer

{
public static void main(String[] args)
{
int index = 0; int tokenCount; int i =0;
Map<String,Integer> wordCount = new HashMap<String,Integer>();
Map<Integer,Integer> letterCount = new HashMap<Integer,Integer>();
String message="The Quick brown fox jumps over the lazy brown dog the quick";

StringTokenizer string = new StringTokenizer(message);


tokenCount = string.countTokens();
System.out.println("Number of tokens = " + tokenCount);
while (string.hasMoreTokens()) {
String word = string.nextToken().toLowerCase();
Integer count = wordCount.get(word);
Integer lettercount = letterCount.get(word);

if(count == null) {
wordCount.put(word, 1);
}
else {
wordCount.put(word, count + 1);
}
}
for (String words : wordCount.keySet())
{System.out.println("Word : " + words + " has count :" +wordCount.get(words));


}
int first ,second;
first = second = Integer.MIN_VALUE;
String firstword ="";
String secondword="";


for(Map.Entry<String, Integer> entry : wordCount.entrySet())
{

int count = entry.getValue();
String word = entry.getKey();
if(count>first){
second = first;
secondword = firstword;
first = count;
firstword = word;

}
else if(count>second && count ==first){
second = count;
secondword = word;
}
}
System.out.println(firstword + "" + first);
System.out.println(secondword + " " + second);

for(i = 0; i < message.length(); i++){
char c = message.charAt(i);
if (c != ' ') {

int value = letterCount.getOrDefault((int) c, 0);
letterCount.put((int) c, value + 1);
}
}

for(int key : letterCount.keySet()) {
System.out.println((char) key + ": " + letterCount.get(key));
}
}

}

最佳答案

好的,所以从问题中我了解到您需要检查字符串中的一对单词是否必须计入整个字符串。我看到你的代码,觉得它比要求的复杂得多。请参阅下面的代码片段。

  1. 以空格为分隔符分割源字符串
  2. 连接相邻的字符串,并用空格分隔
  3. 在源字符串中搜索连接的字符串
  4. 如果没有找到,则添加到Map中,键为单词对,值为1。
  5. 如果找到,则从映射中获取单词对的值并递增并将其设置回来。

    String message = "The Quick brown fox jumps over the lazy brown dog the quick";
    String[] split = message.split(" ");
    Map<String, Integer> map = new HashMap<>();
    int count = 0;
    for (int i = 0; i < split.length - 1; i++) {
    String temp = split[i] + " " + split[i + 1];
    temp = temp.toLowerCase();
    if (message.toLowerCase().contains(temp)) {
    if (map.containsKey(temp))
    map.put(temp, map.get(temp) + 1);
    else
    map.put(temp, 1);
    }

    }
    System.out.println(map);

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

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