java Map练习-获取字符串中字母出现次数(TreeMap实现)

/*
练习:
"kbashbdjsgfwhofihbfkwejhfiubjzfhaads"获取该字符串中的字母出现次数。

希望打印结果:a(3)b(4)d(2)...

通过结果发现,每一个字母都有对应的次数。、
说明字符和次数之间都有映射关系。

注意:当发现有映射关系是,可以选择map集合。
因为map集合中存放的就是映射关系。

为什么使用map集合呢?
当数据之间存在着映射关系时,就想到了map集合。

思路:
1,利用String类的charAt()方法遍历字符串中的每一个字符。
2,定义一个map,因为输出结果是有序的,所以使用TreeMap集合。
3,遍历字符串中的每个字符,判断map中是否存在此键,
   若存在,则键值+1;
   若不存在,则将该字符作为键存入map,并赋予键值为1.
*/

import java.util.*;
class MapTest3
{
	public static void main(String[] args)
	{
		String str="kbashbdjsgfwhofihbfkwejhfiubjzfhaads";
		TreeMap tm=new TreeMap();
		for(int i=0;i<str.length();i++)
		{
			char ch=str.charAt(i);
			if(!(tm.containsKey(ch)))
				tm.put(ch,1);
			else
			{
				int t=(int)(tm.get(ch))+1;
				tm.put(ch,t);
			}
		}

		Set s=tm.keySet();

		Iterator it=s.iterator();
		while(it.hasNext())
		{
			char chr=(char)it.next();
			int num=(int)tm.get(chr);
			sop(chr+"..."+num);
		}
	}

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

时间: 2024-09-30 07:03:40

java Map练习-获取字符串中字母出现次数(TreeMap实现)的相关文章

python之统计字符串中字母出现次数

dic=dict() d={} s=set() s='helloworld' (1)d=dict() for x in s: if x not in d.keys(): d[x]=1 else: d[x]=d[x]+1 print(d) (2)d2=dict() for x in s: d2[x]=d2.get(x,0)+1 print(d2) (3)d3=dict() for x in s: d3[x]=s.count(x) print(d3) 上面一共给出了三种方法,均是以字典的形式输出,但

java面试题 &quot;aababcabcdabcde&quot;,获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)

题目:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1) 刚开始可能对这题无从下手,现在就一步步分析 1:首先它是一个字符串,但是要对每个字符进行分析它出现的次数,那么肯定是要进行循环遍历,要进行遍历一般要么是集合,要么是数组,而在这里变成数组比较好, 2:变成数组后,我们可以用一个map集合存储字符和出现的次数也就是说key是Character,value是Integer,然后在遍历的时候拿key获取value值进行

java &quot;aababcabcdabcde&quot;,获取字符串中每一个字母出现的次数

需求:"aababcabcdabcde",获取字符串中每一个字母出现的次数 分析: * A:定义一个字符串(可以改进为键盘录入) * B:定义一个TreeMap集合 * 键:Character * 值:Integer * C:把字符串转换为字符数组 * D:遍历字符数组,得到每一个字符 * E:拿刚才得到的字符作为键到集合中去找值,看返回值 * 是null:说明该键不存在,就把该字符作为键,1作为值存储 * 不是null:说明该键存在,就把值加1,然后重写存储该键和值 * F:定义字符

查询字符串中字母的个数(两种实现方式1,list与set集合 2,map集合)

题目: 取出一个字符串中字母出现的次数.如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)... 第一种方式(set和list结合使用): package itheima; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; /** * .取出一个字符串中字母出现的次数.如:字符串:"

Map集合应用 取出一个字符串中字母出现的次数。如:字符串:&quot;abcdekka27qoq&quot;&#160;,输出格式为:a(2)b(1)k(2)...

package com.swift; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Test3_String_char { public static void main(String[] args) { /* * 第4题: 取出一个字符串中字母出现的次数.如:字符串:

JAVA用标准库自己写一个字符串翻转方法,翻转字符串中字母非单词

例如输入:I love programming 输出:I evol gnimmargorp 算法思路就是:根据空格提取每一个单词,存放在一个buffer里进行翻转处理,再添加到新的字符串.最后新的字符串就完成整个方法过程. public class ReserveString { public String reserve(String sentence){ String backS = new String(); StringBuffer temp = new StringBuffer();

使用java语言,将字符串中连续重复出现的字母变成“出现次数“+字母的格式

今天在简书上看到这样一道有趣的算法题: 解题思路 首先定义一个变量element,默认是字符串的第一个字符.以element为基准元素,去判断某个字符是否重复.然后再去定义一个变量count去记录重复的次数,初始值应该为1. 然后我们去遍历整个字符串,应该从第1号位置的字符开始遍历.如果当前字符等于element,就说明该字符在当前字符串中出现过,已经重复了.那么count就应该自增. 如果当前字符不等于element,就说明上一个字符连续的重复次数已经计算完毕,可以进行拼接操作.接下来我们就可

获取字符串中某一个字段的数据,GetValueFromStr

gps数据格式为:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A* /********************************************************************** *版权所有 (C)2015, Wuyq. * *文件名称: GetValueFromStr.c *内容摘要:用于演示从gps数据字符串中获取相应的内容 *其它说明:无 *当前版本: V1.0 *作

java统计一个子串在指定字符串中出现的次数

今天查着用了用String类里的几个方法,分享下代码 题目要求:统计一个子串在指定字符串中出现的次数( 提示java字串出现了6次) 1 public class SearchSameString { 2 3 public static void main(String[] args) { 4 // 定义俩个字符串 5 String shortStr = "java"; 6 String longStr = "javasdfjavawerjavavsswetjavadfgdf