在 Java 中不使用 Hashmap、HashSet 等在字符串中查找重复的单词

谢赫·萨基布

我有下面的代码,它确实在没有 HashMap、HashSet 等的字符串中找到重复项,但我想要一个比这个更好的解决方案。请帮助我是 Java 编程的新手。我相信 Java 足够强大,可以提供 PS-这并不是我试图在 Java 集合中避免使用 HashMap 等。我只想要一个更时尚的解决方案

public class practice {
    static void countWords(String st){
         //split text to array of words
         String[] words=st.split("\\s");
       //frequency array
         int[] fr=new int[words.length];
       //init frequency array
         for(int i=0;i<fr.length;i++)
           fr[i]=0;
         //count words frequency
         for(int i=0;i<words.length;i++){
           for(int j=0;j<words.length;j++){
             if(words[i].equals(words[j])) 
               {
                 fr[i]++;

                    }
                }
               }

         //clean duplicates
           for(int i=0;i<words.length;i++){
             for(int j=0;j<words.length;j++){
               if(words[i].equals(words[j])) 
               {
                 if(i!=j) words[i]="";

               }
         }
         }

    //show the output

    int total=0;
    System.out.println("Duplicate words:");
    for(int i=0;i<words.length;i++){

    if(words[i]!=""){


    System.out.println(words[i]+"="+fr[i]);

    total+=fr[i];

    }    
       }

    System.out.println("Total words counted: "+total);
     }


    public static void main(String[] args) {
        // TODO Auto-generated method stub
           countWords("apple banna apple fruit sam fruit apple hello hi hi hello hi");  
    }

}
开发商

您可以使用 Java8countWords在一行代码中编写整个方法(遵循内联注释):

static void countWords(String st){
  Map<String, Long> wordsAndCounts = 
     Arrays.stream(st.split("\\s")).    //Splt the string by space i.e., word
         collect(Collectors.groupingBy( //Apply groupby
         Function.identity(),          //Map each word
         Collectors.counting()         //Count how many words
     ));
    System.out.println(wordsAndCounts);
}

输出:

{banna=1, hi=3, apple=3, fruit=2, hello=2, sam=1}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HashSet和HashMap在Java中如何工作?

来自分类Dev

在hashmap java中替换重复的值字符串

来自分类Dev

如何基于HashSet的顺序在Java中创建HashMap

来自分类Dev

java:如何知道字符串中的重复单词?

来自分类Dev

在Java字符串中查找单词位置

来自分类Dev

Java:在Java中删除重复的单词和单词的子字符串

来自分类Dev

HashMap<HashSet, Long> 比较 hashset 中的字符串并划分它们

来自分类Dev

如何在不使用.replace的情况下替换Java字符串中的单词

来自分类Dev

Java中的子字符串操作-查找由其他单词组成的最长单词

来自分类Dev

Java - 查找字符串中给定单词前后的单词

来自分类Dev

在以“ /”分隔的字符串中查找重复的单词

来自分类Dev

连续查找字符串中单词的重复项

来自分类Dev

从字符串数组中删除重复项-使用HashSet

来自分类Dev

Java字符串中的单词

来自分类Dev

如何在Java中查找字符串中的最后一个单词?

来自分类Dev

如何在Java中查找字符串中的最后一个单词?

来自分类Dev

在HashMap内的HashSet中添加元素

来自分类Dev

在Rust中,如何从HashMap的键创建HashSet?

来自分类Dev

hashCode()在HashSet或HashMap中扮演什么角色

来自分类Dev

如何在不使用split和stringtokenizer的情况下反转Java中字符串中的单词

来自分类Dev

正则表达式可在Java字符串中查找特定单词

来自分类Dev

如何重写哈希码和equals方法,以避免在Java的HashSet中添加重复的字符串?

来自分类Dev

Java中的重复字符串

来自分类Dev

摆脱Java中的重复字符串

来自分类Dev

在Java中删除重复的字符串

来自分类Dev

Java中的重复字符串数组

来自分类Dev

Java:在字符串中查找字符串

来自分类Dev

Java从文件搜索中删除重复项以查找字符串数组[0]

来自分类Dev

Java在数组中查找重复的字符串并添加相应的int值

Related 相关文章

  1. 1

    HashSet和HashMap在Java中如何工作?

  2. 2

    在hashmap java中替换重复的值字符串

  3. 3

    如何基于HashSet的顺序在Java中创建HashMap

  4. 4

    java:如何知道字符串中的重复单词?

  5. 5

    在Java字符串中查找单词位置

  6. 6

    Java:在Java中删除重复的单词和单词的子字符串

  7. 7

    HashMap<HashSet, Long> 比较 hashset 中的字符串并划分它们

  8. 8

    如何在不使用.replace的情况下替换Java字符串中的单词

  9. 9

    Java中的子字符串操作-查找由其他单词组成的最长单词

  10. 10

    Java - 查找字符串中给定单词前后的单词

  11. 11

    在以“ /”分隔的字符串中查找重复的单词

  12. 12

    连续查找字符串中单词的重复项

  13. 13

    从字符串数组中删除重复项-使用HashSet

  14. 14

    Java字符串中的单词

  15. 15

    如何在Java中查找字符串中的最后一个单词?

  16. 16

    如何在Java中查找字符串中的最后一个单词?

  17. 17

    在HashMap内的HashSet中添加元素

  18. 18

    在Rust中,如何从HashMap的键创建HashSet?

  19. 19

    hashCode()在HashSet或HashMap中扮演什么角色

  20. 20

    如何在不使用split和stringtokenizer的情况下反转Java中字符串中的单词

  21. 21

    正则表达式可在Java字符串中查找特定单词

  22. 22

    如何重写哈希码和equals方法,以避免在Java的HashSet中添加重复的字符串?

  23. 23

    Java中的重复字符串

  24. 24

    摆脱Java中的重复字符串

  25. 25

    在Java中删除重复的字符串

  26. 26

    Java中的重复字符串数组

  27. 27

    Java:在字符串中查找字符串

  28. 28

    Java从文件搜索中删除重复项以查找字符串数组[0]

  29. 29

    Java在数组中查找重复的字符串并添加相应的int值

热门标签

归档