在java中怎样查找重复字符串 - 极悦
首页 课程 师资 教程 报名

在java中怎样查找重复字符串

  • 2020-10-30 10:54:22
  • 1586次 极悦

在一段java编程代码中,字符串是不可缺少的一个要素,属于java中的基础知识,字符串不仅在java面试题中会出现,在编写代码时更要掌握怎样使用字符串。在前面我们也学习过关于字符串截取的知识,你应该有所掌握吧、格式化字符串也是比较重要的内容,今天我们学习怎样查找重复字符串,在实际的工作中也会遇到查找重复字符串的需要。

image.png

先看一个在java中查找重复字符串的例子,为大家提供一个思路:先循环整个字符串,用到了map的键值对,判断map的key 是否存在,map不存在就赋值字符当map的key ,value 为1。map.put(s.charAt(i),1);当map存在时,就在当前value值之上+1操作,map.put(s.charAt(i),map.get(s.charAt(i))+1);

image.png

结果是{a=3, b=3, c=3, d=2, t=3}。注意:map中泛型 Character 为char的包装类,也可以使用Object代替。


关于解决在java中怎样查找重复字符串这个问题的标准方法是从String中获取字符数组,遍历它并构建一个包含字符及其计数的Map。然后遍历该Map并打印出现不止一次的字符。所以你实际上需要两个循环来完成这项工作,第一个循环来构建地图,第二个循环来打印字符和计数。

查看下面的例子,只有一个名为printDuplicateCharacters()的静态方法,它可以同时执行这两项工作。我们首先通过调用toCharArray()从String中获取字符数组。接下来使用HashMap来存储字符及其计数。用containsKey()方法来检查密钥是否已经存在,如果已经存在,我们通过调用get()方法从HashMap获取旧计数,并在将其递增1之后将其存储回来。代码如下:


import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

import java.util.Set;

/**

* Java Program to find duplicate characters in String.

*

*

* @author http://java67.blogspot.com

*/

public class FindDuplicateCharacters{

    public static void main(String args[]) {

        printDuplicateCharacters("Programming");

        printDuplicateCharacters("Combination");

        printDuplicateCharacters("Java");

    }

    /*

     * Find all duplicate characters in a String and print each of them.

     */

    public static void printDuplicateCharacters(String word) {

        char[] characters = word.toCharArray();

        // build HashMap with character and number of times they appear in String

        Map<Character, Integer> charMap = new HashMap<Character, Integer>();

        for (Character ch : characters) {

            if (charMap.containsKey(ch)) {

                charMap.put(ch, charMap.get(ch) + 1);

            } else {

                charMap.put(ch, 1);

            }

        }

        // Iterate through HashMap to print all duplicate characters of String

        Set<Map.Entry<Character, Integer>> entrySet = charMap.entrySet();

        System.out.printf("List of duplicate characters in String '%s' %n", word);

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

            if (entry.getValue() > 1) {

                System.out.printf("%s : %d %n", entry.getKey(), entry.getValue());

            }

        }

    }

}


如何在字符串JavaOnce中找到重复的字符?我们用每个字符和计数构建Map,接下来的任务是循环遍历Map并检查每个条目,如果count(条目的值大于1),那么该字符已经发生了不止一次。可以打印重复的字符,也可以使用它们执行任何操作。


Java实现查找重复字符串和字符串去重是经常在开发项目中出现的,也是大家需要会的技能。以上就是对在java中查找重复字符串问题的回答,希望通过举两个例子的分析,大家能更好的学习怎样实现查找重复字符串,想学习更多关于java字符串的知识的话,可以在本站的java教程中学习。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交