TreeMap基本练习:获取某字符串中的字母出现的次数
2015-04-20 21:07
274 查看
package map;
import java.util.*;
public class MapDemo5 {
/**
* @练习:
* "sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数
*
* 希望打印结果:a(1)c(2)........
*
* 通过结果发现,每一个字母都有对应的次数
* 说明字母和次数之间都有映射关系。
*
* 注意了,当发现有映射关系时,可以选择使用map集合。
* 因为Map集合中存放的就是映射关系。
*
* 为什么使用map集合呢?
* 当数据之间存在映射关系时,就要先想到map集合。
*
* 思路:
* 1.将字符串转换成字符数组,因为要对每一个字母进行操作。
* 2.定义一个map集合,因为打印结果的字母有顺序,所以使用treemap集合。
* 3.遍历字符数组:
* 将每一个字母作为键去查map集合。
* 如果返回null,将该字母和1存入map集合中。
* 如果返回不是null,说明该字母在map集合中已经存在并有对应的次数。
* 那么就获取该次数并进行自增,然后将该字母和自增后的次数存入到map集合中,覆盖调用原理键所对应的值。
* 4.将map集合中的数据变成指定的字符串形式返回。
*/
public static void main(String[] args) {
String s = charCount("aabcd=-abcdef$a");
System.out.println(s);
}
public static String charCount(String str){
char[] chs = str.toCharArray();
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
int count =0;
for(int x= 0;x<chs.length;x++){
if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))
continue;
Integer value = tm.get(chs[x]);
//方式一:
if(value!=null)
count = value;
count++;
tm.put(chs[x], count);
count = 0 ;
//方式二
/*
if(value==null){
tm.put(chs[x], 1);
}
else{
value = value+1;
tm.put(chs[x],value);
}
*/
}
//System.out.println(tm);
StringBuilder sb = new StringBuilder();
Set<Map.Entry<Character, Integer>> entrySet = tm.entrySet();
Iterator<Map.Entry<Character, Integer>> it = entrySet.iterator();
while(it.hasNext()){
Map.Entry<Character, Integer> me = it.next();
Character ch = me.getKey();
Integer value = me.getValue();
sb.append(ch+"("+value+")");
}
return sb.toString();
}
}
import java.util.*;
public class MapDemo5 {
/**
* @练习:
* "sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数
*
* 希望打印结果:a(1)c(2)........
*
* 通过结果发现,每一个字母都有对应的次数
* 说明字母和次数之间都有映射关系。
*
* 注意了,当发现有映射关系时,可以选择使用map集合。
* 因为Map集合中存放的就是映射关系。
*
* 为什么使用map集合呢?
* 当数据之间存在映射关系时,就要先想到map集合。
*
* 思路:
* 1.将字符串转换成字符数组,因为要对每一个字母进行操作。
* 2.定义一个map集合,因为打印结果的字母有顺序,所以使用treemap集合。
* 3.遍历字符数组:
* 将每一个字母作为键去查map集合。
* 如果返回null,将该字母和1存入map集合中。
* 如果返回不是null,说明该字母在map集合中已经存在并有对应的次数。
* 那么就获取该次数并进行自增,然后将该字母和自增后的次数存入到map集合中,覆盖调用原理键所对应的值。
* 4.将map集合中的数据变成指定的字符串形式返回。
*/
public static void main(String[] args) {
String s = charCount("aabcd=-abcdef$a");
System.out.println(s);
}
public static String charCount(String str){
char[] chs = str.toCharArray();
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
int count =0;
for(int x= 0;x<chs.length;x++){
if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))
continue;
Integer value = tm.get(chs[x]);
//方式一:
if(value!=null)
count = value;
count++;
tm.put(chs[x], count);
count = 0 ;
//方式二
/*
if(value==null){
tm.put(chs[x], 1);
}
else{
value = value+1;
tm.put(chs[x],value);
}
*/
}
//System.out.println(tm);
StringBuilder sb = new StringBuilder();
Set<Map.Entry<Character, Integer>> entrySet = tm.entrySet();
Iterator<Map.Entry<Character, Integer>> it = entrySet.iterator();
while(it.hasNext()){
Map.Entry<Character, Integer> me = it.next();
Character ch = me.getKey();
Integer value = me.getValue();
sb.append(ch+"("+value+")");
}
return sb.toString();
}
}
相关文章推荐
- java Map练习-获取字符串中字母出现次数(TreeMap实现)
- 黑马程序员_集合TreeMap练习:获取某一字符串的字母出现的次数
- TreeMap获取字符串中字母出现次数
- TreeMap获取该字符串中的每个字母出现的次数
- JAVA 获取字符串中每一个字母出现的次数 TreeMap 解
- 代码训练营——TreeMap(获取该字符串中的字母出现的次数)
- java练习1——识别字符串中出现英文字母的次数
- java "aababcabcdabcde",获取字符串中每一个字母出现的次数
- Java Map集合获取字符串中的字母出现的次数
- 集合框架——TreeMap练习(字母出现的次数)
- 获取字符串中字母出现的次数
- 练习二 将字符串反转 练习三 获取关键字出现的次数 练习四 获取2个字符串中最大公共子串
- 集合(TreeMap练习-字母出现的次数)
- Map集合练习之对字符串中字母出现的次数求和
- python学习第一周 获取字符串中出现次数最多的字母
- 获取字符串中每个字符出现的次数(利用TreeMap)
- python学习第一周 获取字符串中出现次数最多的字母
- java面试题 "aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
- 利用map集合获取字符串中字母出现的次数
- TreeMap练习—字母出现的次数