gpt4 book ai didi

java - 我的字数统计程序得到错误的结果

转载 作者:行者123 更新时间:2023-12-02 09:18:59 25 4
gpt4 key购买 nike

我正在尝试制作一个应用程序来计算字符串中单词出现的次数。例如,如果我有字符串“我想要因为我想要”,我希望看到结果“2,2,1”。但我得到的结果是“1,1,1,1,1”。

这是我的程序中我认为有问题且与问题相关的部分:

Scanner counter = new Scanner(text);
int currentword = 0;


String[] thewords = new String[10001];
int[] thenumbers = new int[10000];
String usedwords = "";

while (counter.hasNext()) {
String nextstring = counter.next();

for(int temp = 0; temp < thewords.length;temp++) {

if (thewords[temp] == null) {
thewords[currentword] = nextstring;
currentword++;
thenumbers[currentword]++;
break;
}
else if (thewords[temp].equals(nextstring)) {
thenumbers[temp]++;
break;
}
}
}

任何想法为什么我得到错误的结果,因为我已经多次运行代码但没有成功找到问题。

感谢任何帮助...

谢谢

最佳答案

有很多方法可以将单词数组简化为词频图。这是其中之一:


import java.util.Arrays;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;

String text = "I want because I want";

String[] words = text.split("\\s+"); // split by whitespace
Set<String> uniqueWords = Arrays.stream(words).collect(Collectors.toSet());

final Map<String, Long> wordFrequencies = uniqueWords.stream()
.collect(
Collectors.toMap(
Function.identity(),
word -> Arrays.stream(words).filter(w -> w.equals(word)).count()));

wordFrequencies.forEach((word, frequency) -> {
System.out.println(String.format("%s: %d", word, frequency));
});

此代码打印出:

want: 2
I: 2
because: 1

关于java - 我的字数统计程序得到错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58825737/

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