gpt4 book ai didi

Java 存储来自扫描仪的输入

转载 作者:行者123 更新时间:2023-12-01 19:46:47 25 4
gpt4 key购买 nike

当我无法使用“列表”,但需要存储扫描仪的输入时,我该如何处理?

我想让程序计算扫描仪输入中出现的输入频率。

例如,如果输入是

“我喜欢苹果,但我也喜欢香蕉”

结果是

我:2喜欢:2苹果:1个香蕉:1个但是:1太:1

起初我想到制作字符串数组,每次输入时,我都将它们放入数组中。之后,虽然需要 n^2 时间复杂度,但对每个元素运行 for 循环,然后检查它是否具有相同的单词。

    for (String str in arr){
for(String str_2 in arr){
if(strr.equals(str_2)){
count[i]++;
} // count is the array storing the frequencies.

但这里的问题是......在声明 arr 时,我应该知道输入大小。其他人告诉我使用“list”,但“list”的使用受到限制。

遇到这种情况,该怎么办?

最佳答案

你会用Java吗streams

String[] array = {"i", "like", "apple", "but", "i", "like", "banana", "too"};

或者从用户那里获取输入,例如:

Scanner sc = new Scanner(System.in);
int numberOfEntries = sc.nextInt(); // defines how big the array should be
String[] array = new String[numberOfEntries];
for (int i = 0; i < numberOfEntries; i++) {
System.out.println("Enter value " + (i+1));
String word = sc.next();
array[i] = word;
}

Arrays.stream(array).collect(Collectors.groupingBy(p -> p, Collectors.counting()))
.entrySet().stream().forEach(key -> System.out.println(key.getKey() + ": " + key.getValue()));

输出:

banana: 1

but: 1

apple: 1

too: 1

like: 2

i: 2

关于Java 存储来自扫描仪的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52948732/

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