记录字符串字母出现的次数。

xiaoxiao2025-05-31  33

package map;

import java.util.Iterator; import java.util.Map; import java.util.TreeMap;

/*  "aadsuifbnsiubfbisdkbhk"  *     打印字符出现的次数 如(a(2)  b(4))  *  从小到大排序输出字符出现的次数(选用TreeMap)  *    *  这个集合最终应该存储的是字母和次数的对应关系  *    *  1,因为操作的是字符串中的字母,所以要先把字符串转成数组  *  2,遍历字符串数组,用没一个字母作为键去查map集合这个表  *  如果不存在键,就把该字母作为键存,1作为值存到map集合中。  *  如果存在这个键,那么就把集合中的键对应的值取出来加1,然后再存到集合中去。  *  map集合的特点是键相同会覆盖掉值。这样就记录了该字母的次数了。  *  3,把字符串数组遍历结束,字母出现的次数也就记录完毕了。  *   */

public class StringNumber {     public static void main(String[] args) {         String string = "aadsuifbns2534ADFDSiubfbisdkbhk";         String[] strArr = new String[string.length()];         for (int i = 0; i < string.length(); i++) {             strArr[i] = string.substring(i, i + 1);         }

        Map<String, Integer> treeMap = new TreeMap<String, Integer>();

        for (int i = 0; i < strArr.length; i++) {             if (!(strArr[i].compareTo("a")>=0 && strArr[i].compareTo("z")<=0||                     strArr[i].compareTo("A")>=0 && strArr[i].compareTo("Z")<=0                     ) )             {                 continue;             }

            Integer value = treeMap.get(strArr[i]);             if (value == null) {                 treeMap.put(strArr[i], 1);             } else {                 treeMap.put(strArr[i], value + 1);             }

        }                  Iterator<String> tIterator = treeMap.keySet().iterator();         while (tIterator.hasNext()) {             String key = tIterator.next();             Integer value = treeMap.get(key);             System.out.print(key + "(" + value + ")");         }         

    } }  

转载请注明原文地址: https://www.6miu.com/read-5031026.html

最新回复(0)