题目:
取出一个字符串中字母出现的次数。如:字符串:"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; /** * .取出一个字符串中字母出现的次数。如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)... * @author Administrator * */ public class Demo6 { public static void main(String[] args) { String str="abcdekka27qoA*&AAAq"; //查询字符串中字母的个数的函数 countStringNumber(str); } private static void countStringNumber(String str) { //字符串转化为字符数组 char[] array = str.toCharArray(); //使用set结合,LinkedHashSet有顺序,不重复 Set<Character> set=new LinkedHashSet<Character>(); //将数组中的字符(不重复)添加到set集合 for (int i = 0; i < array.length; i++) { set.add(array[i]); } //把set集合转化为list集合 List<Character> list=new ArrayList<Character>(set); for (int i = 0; i < list.size(); i++) { int count=0;//记录字符个数的变量 for (int j = 0; j < array.length; j++) { if(list.get(i).equals(array[j])){//判断付过list中的字母与数组中的字母一样count就加1 count++; } } System.out.print(list.get(i)+"("+count+")");//输出 } } }
package itheima; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; public class Demo7 { public static void main(String[] args) { String str="abcdekka27qoA*&AAAq"; //查询字符串中字母的个数的函数 countStringNumber(str); } private static void countStringNumber(String str) { //转化为字符数组 char[] c = str.toCharArray(); // System.out.println(c); //使用map集合,LinkedHashMap有序的 Map<Character, Integer> map=new LinkedHashMap<Character, Integer>(); //遍历 for (int i = 0; i < c.length; i++) { //如果集合中的key不包含c[i]就设置为1 if(!map.keySet().contains(c[i])){ map.put(c[i], 1); }else{//否 则就加1 map.put(c[i], map.get(c[i])+1); } } //迭代集合 Iterator<Map.Entry<Character, Integer>> it=map.entrySet().iterator(); while(it.hasNext()){ Entry<Character, Integer> entry = it.next(); System.out.print(entry.getKey()+"("+entry.getValue()+")"); } } }
查询字符串中字母的个数(两种实现方式1,list与set集合 2,map集合)
原文地址:http://blog.csdn.net/u014010769/article/details/46239207