Java入门:基础算法之从字符串中找到重复的字符
Posted 盆古开天地
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java入门:基础算法之从字符串中找到重复的字符相关的知识,希望对你有一定的参考价值。
本程序演示从一个字符串中找出重复的字符,并显示重复字符的个数。
import java.util.HashMap; import java.util.Map; import java.util.Set; public class Details { public void countDupChars(String str){ //创建一个HashMap对象 Map<Character, Integer> map = new HashMap<Character, Integer>(); //将字符串转换为char数组 char[] chars = str.toCharArray(); /* logic: 将每个字符插入到map中,map中的每个元素是[key,value]的组合, * key记录字符,value记录这个字符出现的次数。 * 如果map中已经存在ch,则修改该字符出现的次数(原来次数+1)。 * 如果map中还没有ch,则将ch插入到map中,key为ch的值,value为1*/ for(Character ch:chars){ if(map.containsKey(ch)){ map.put(ch, map.get(ch)+1); } else { map.put(ch, 1); } } //获得map的键集 Set<Character> keys = map.keySet(); /* 对出现超过1次的字符,显示其个数. */ for(Character ch:keys){
int n = map.get(ch);//从map中获取ch的个数 if(n > 1){ System.out.println("Char "+ch+" "+n); } } } public static void main(String a[]){ Details obj = new Details(); System.out.println("String: www.google.com"); System.out.println("-------------------------"); obj.countDupChars("www.google.com"); System.out.println("\nString: Hello World"); System.out.println("-------------------------"); obj.countDupChars("Hello World"); System.out.println("\nString: #@[email protected]!#$%!!%@"); System.out.println("-------------------------"); obj.countDupChars("#@[email protected]!#$%!!%@"); } }
以上是关于Java入门:基础算法之从字符串中找到重复的字符的主要内容,如果未能解决你的问题,请参考以下文章
C++ 算法进阶系列之从 Brute Force 到 KMP 字符串匹配算法的优化之路
100天算法入门 - 每日三题 - Day8同构字符串存在重复元素翻转二叉树