首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取字符串数组中每个单词的第一个字符及其频率

获取字符串数组中每个单词的第一个字符及其频率
EN

Stack Overflow用户
提问于 2016-06-01 13:16:01
回答 4查看 9.8K关注 0票数 2

例如,我有一个String数组:

代码语言:javascript
复制
String[] words = {"apple", "peach", "apricot"};

如何打印出每个字符串的第一个字母及其相应的频率?

对于上面的例子,我的预期输出是:

代码语言:javascript
复制
a - 2
p - 1

我不知道该怎么做。注意,字符串数组的内容是用户定义的,而不是程序中的预定义。

到目前为止,我的情况如下:

代码语言:javascript
复制
Scanner input = new Scanner(System.in);
String[] words = new String[20];
HashMap holder = new HashMap();
for (int i = 0; i < 5; i++) {
    System.out.println("Enter word #" + (i + 1) + ": ");
    words[i] = input.next();
}

for (int i = 0; i < 5; i++) {
    for (int j = 1; j < 5; j++) {
        if (words[i].charAt(0) == words[j].charAt(0)) {
            freq += 1;
            holder.put(words[i].charAt(0), freq);
        }
    }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-06-01 14:52:10

我能修好它,这就是我所做的:

代码语言:javascript
复制
 for (int i = 0; i < 20; i++){
        System.out.println("Enter word #" + (i+1) +": ");
        words[i] = input.next();
        if (map.containsKey(words[i].charAt(0)))
    {
        map.put(words[i].charAt(0), (int)map.get(words[i].charAt(0))+ 1);
    }
    else
    {
        map.put(words[i].charAt(0), 1);
    }
    }
票数 0
EN

Stack Overflow用户

发布于 2016-06-01 13:24:26

我不想为你做家庭作业,但这里有一个问题.

代码语言:javascript
复制
Arrays.stream(wordArray)
  .map(s -> s.charAt(0))
  .collect(Collectors.groupingBy(c -> c, counting()))
  .forEach((c, f) -> System.out.println(c + " - " + f));

在英语中,这一代码:

  • 流词
  • 将它们更改为第一个字母
  • 在一个以字母本身为键的地图中收集它们
  • 将字母的Map值列表更改为列表大小的计数
  • 打印出收集到的计数
票数 2
EN

Stack Overflow用户

发布于 2016-06-01 13:37:06

代码语言:javascript
复制
String[] test = { "apple", "clown", "banana", "ant", "batman" };
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
for (int i = 0; i < test.length; i++) {
    if (map.containsKey(test[i].charAt(0))) {
        map.put(test[i].charAt(0), map.get(test[i].charAt(0)) + 1);
    } else {
        map.put(test[i].charAt(0), 1);
    }
}
for (Entry<Character, Integer> entry : map.entrySet()) {
    System.out.println("" + entry.getKey() + " - " + entry.getValue());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37569841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档