如何获取字符串中相同字符出现的次数

任务:

1、统计字符数组中相同数据个数。

2、需要用set实现。

3、需要用iterator实现。

第一次出现时,我只是简单的在纸上写了点思路,事后发现除了一些具体属性可能因为不熟悉之外,大体还是成功的:

我将思路化为代码后实现如下:

public static void main(String[] args) {
		String[] arrays=new String[]{"zhangsan","andi","andi","zhangsan","wangwu","pianliu"};
		Arrays.sort(arrays, new SortComparator());
		Set<String> setData=new HashSet<String>();
		for(int i=0;i<arrays.length;i++){
			setData.add(arrays[i]);//具备排重功能
		}
		//计算相同数据出现的次数
		Map<String,Integer> countMap=new HashMap<String,Integer>();
			for(int j=0;j<arrays.length;j++){
				if(countMap.containsKey(arrays[j])){//如果存在那么获取value自增
					int count=countMap.get(arrays[j])+1;
					countMap.put(arrays[j], count);
				}else{
					countMap.put(arrays[j], 1);
				}
		}
		//遍历set
		Iterator<String> it= setData.iterator();//不重复数据
		while(it.hasNext()){
			String data=it.next();
			System.out.print(data+" = "+countMap.get(data));
			System.out.println();
		}
	}

很明显,代码中我添加了一个比较类SortComparator,本来我打算将数据统计完成后,按照字母从小到大的方式输出,虽然是画蛇添脚,但是终归还是比较有意思,上面的代码并没有实现到这点,主要原因是set和map存储数据是无序的,如果非要实现,需要在代码末端进行修改。

class SortComparator implements Comparator<String>{

	public int compare(String o1, String o2) {
		char c1 = ((String) o1).charAt(0);
		char c2 = ((String) o2).charAt(0);
		return c1-c2;
	}

}

扩展:该功能可以用于统计文章中的相同字数或者词重复出现多少次。

时间: 2025-01-16 05:39:25

如何获取字符串中相同字符出现的次数的相关文章

寻找字符串中出现字符最多的次数,出现次数最多的字符,出现次数最多的字符的索引

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>demo</title> <link rel="stylesheet" href="css.css"> <script src="js.js"></script>

Java基础知识强化之集合框架笔记61:Map集合之统计字符串中每个字符出现的次数的案例

1. 首先我们看看统计字符串中每个字符出现的次数的案例图解:

黑马程序员——统计一个字符串中各个字符出现的次数

统计一个字符串中各个字符出现的次数 import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class TreeMapDemo { //统计一个字符串中相应字符出现的次数 public static void main(String[] args) { // String s = "aagfagdlkerjgavpofjmvglk我是你的"; //调用自定义方法来 统计相应字符出

用python统计list中各元素出现的次数(同理统计字符串中各字符出现的次数)

统计list中各元素出现的次数,下面的方法也适用于统计字符串中各字符出现的次数 1.用字典的形式来处理 a = "abhcjdjje" a_dict = {}for i in a: a_dict[i] = a.count(i)print(a_dict) 2.用count函数直接打印出来 L = [2,4,5,6,2,6,0,4] for i in L: print("%d的次数:%d"%(i,L.count(i))) 3.用collections的Counter函数

几个小编程题(数组去重,获取字符串中最多字符)

1.编写一个方法去掉一个数组的重复元素: 方法一:普通for循环嵌套: 1 function removeSame(arr){ 2 console.log(arr); 3 for(var i=0, len = arr.length; i<len; i++){ 4 for(var j=i+1; j<len-i; j++){ 5 if(arr[i] === arr[j]){ 6 arr.splice(arr[j], 1); //如果检测到有重复的元素则删除 7 j--; //当有多个重复元素时向前

Java编程练习之判断Java文件名是否正确,判断邮箱格式是否正确和统计指定字符串中某字符现的次数

一判断Java文件名是否正确,判断邮箱格式是否正确 功能:判断Java文件名是否正确,判断邮箱格式是否正确.其中:合法的文件名应该以.java结尾:合法的邮箱名 中至少要包含 "@" , 并要求 "@" 在 "." 之前. 练习代码: public class Test { public static void main(String[] args) { //Java文件名 String fileName = "HelloWorld.j

获取字符串中重复字符的索引

list_all=[] oper_s="abcdaaaa" i_num=0 while(True): x=oper_s.find("a",i_num) print(x) if(not x==-1): i_num=x+1 list_all.append(x) else: break print(list_all) 原文地址:https://www.cnblogs.com/sea-stream/p/10493245.html

计算一个字符串中每个字符出现的个数

需求:计算一个字符串中每个字符出现的次数 分析: 使用Scanner获取用户输入的字符串 创建Map集合,Key是字符串中的字符,value是字符的个数 遍历字符串,获取每一个字符 使用获取的字符,去Map集合判断key是否存在 key存在:通过字符(key),获取value(字符个数)value++ put(key,value )把新的value存储到Map集合中 key不存在:put(key,1) 遍历Map集合,输出结果 package day13; import java.util.Ha

字符串中单个字符的用法

我们使用字符串时经常要对字符串中单个字符进行处理,比如检测一个string对象是否包含空白,或者把string对象中的字母大写改为小写,查看某个特定字符是否出现,判断字符串是否为数字等等. 这类处理的关键是要获取字符本身.有时需要处理string对象中的每一个字符,另外一些时候则只需处理某个特定的字符,还有些时候遇到某个条件处理就要停下来. 在cctype头文件中定义了一组标准库函数处理字符串的工作. cctype头文件中的函数 isalnum(c)    当c是字母或数字时为真 isalpha