如何从给定的字符串中打印重复的字符?

简介: 【8月更文挑战第23天】

在Java中,从给定的字符串中找出并打印重复的字符是一个常见的编程任务。这个任务通常涉及到字符串操作和数据结构的使用,例如哈希表(HashMap)。本文将详细介绍如何实现这一功能,并提供相应的Java代码示例。

步骤一:创建HashMap以存储字符及其出现次数

首先,我们需要创建一个HashMap来存储每个字符及其在字符串中的出现次数。HashMap是一种常用的数据结构,它允许我们以键值对的形式存储数据,并能够快速访问和更新这些数据。

import java.util.HashMap;

public class Main {
   
    public static void main(String[] args) {
   
        String str = "ababcdefghhg";
        HashMap<Character, Integer> charCountMap = new HashMap<>();

        for (int i = 0; i < str.length(); i++) {
   
            char c = str.charAt(i);
            if (charCountMap.containsKey(c)) {
   
                charCountMap.put(c, charCountMap.get(c) + 1);
            } else {
   
                charCountMap.put(c, 1);
            }
        }
        // 此时charCountMap中存储了每个字符及其出现次数
    }
}

步骤二:遍历HashMap以找出重复字符

接下来,我们需要遍历HashMap以找出重复的字符。重复字符是指出现次数大于1的字符。

for (Character c : charCountMap.keySet()) {
   
    if (charCountMap.get(c) > 1) {
   
        System.out.println("重复字符: " + c);
    }
}

完整代码示例

下面是一个完整的Java程序,用于从给定的字符串中找出并打印重复的字符。

import java.util.HashMap;

public class Main {
   
    public static void main(String[] args) {
   
        String str = "ababcdefghhg";
        HashMap<Character, Integer> charCountMap = new HashMap<>();

        // 计数每个字符的出现次数
        for (int i = 0; i < str.length(); i++) {
   
            char c = str.charAt(i);
            if (charCountMap.containsKey(c)) {
   
                charCountMap.put(c, charCountMap.get(c) + 1);
            } else {
   
                charCountMap.put(c, 1);
            }
        }

        // 打印重复字符
        for (Character c : charCountMap.keySet()) {
   
            if (charCountMap.get(c) > 1) {
   
                System.out.println("重复字符: " + c);
            }
        }
    }
}

运行上述代码,输出结果为:

重复字符: a
重复字符: b
重复字符: h
重复字符: g

结论

通过使用HashMap来存储每个字符及其出现次数,我们可以有效地找出并打印出字符串中的重复字符。这种方法不仅可以应用于查找重复字符,还可以扩展到其他类似的数据处理任务,例如统计最常出现的字符或删除特定字符等。

目录
相关文章
|
3月前
|
存储 算法 索引
|
3月前
|
Java
输入一个字符串,找出其中不含有重复字符的最长子串的长度。
这篇文章提供了一个Java解决方案,用于找出输入字符串中不含有重复字符的最长子串的长度,通过使用HashSet来跟踪字符并计算最长不重复字符子串。
输入一个字符串,找出其中不含有重复字符的最长子串的长度。
|
6月前
|
索引 容器
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
|
6月前
字符串,每个里面包含0-N个数字,如3,8,2,编写函数,将两个这样的字符串合并,并且输出的字符串里面没有重复的数字,并从大到小排列.
字符串,每个里面包含0-N个数字,如3,8,2,编写函数,将两个这样的字符串合并,并且输出的字符串里面没有重复的数字,并从大到小排列.
35 0
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
|
C语言
查找某字符串出现的位置,并且输出该第一个字母所在的位
查找某字符串出现的位置,并且输出该第一个字母所在的位
135 0
查找某字符串出现的位置,并且输出该第一个字母所在的位
|
Java
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
117 0
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
|
测试技术
字符串中有多少个不重复的字符并按由前到后的顺序输出一个新的字符串和该字符串长度的整数
字符串中有多少个不重复的字符并按由前到后的顺序输出一个新的字符串和该字符串长度的整数
88 0
输出字符串 , 给定一个字符串 a,请你按照下面的要求输出字符串 b。
给定一个字符串 aa,请你按照下面的要求输出字符串 bb。 给定字符串 aa 的第一个字符的 ASCII 值加第二个字符的 ASCII 值,得到 bb 的第一个字符; 给定字符串 aa 的第二个字符的 ASCII 值加第三个字符的 ASCII 值,得到 bb 的第二个字符; …
188 0