Maison > Java > javaDidacticiel > Java Real Combat donne une chaîne et compte le nombre de caractères chinois ou de lettres qui apparaissent

Java Real Combat donne une chaîne et compte le nombre de caractères chinois ou de lettres qui apparaissent

无忌哥哥
Libérer: 2018-07-20 10:56:18
original
2457 Les gens l'ont consulté

Sans plus tarder, passons directement au code

package test;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Stack;
import java.util.Vector;
import com.sun.org.apache.bcel.internal.generic.IRETURN;
public class Test {         
    public static void main(String[] args)   {                     
        String str = "中国你好吗>国你好吗>中国国家国国国国aabb;;;";              
        Map<Character,Integer> map = new HashMap<Character,Integer>();              
        char[] ch = str.toCharArray();//将字符串转为数组                            
        /*将字符和出现的个数存入到Map*/              
        for(char c:ch){               
            if(map.get(c)==null){                
                map.put(c, 1);//为空的话值为1               
                }else{                
                    Integer in = map.get(c);//得到的value值至少为1                
                    in++;                
                    map.put(c, in);               
                    }              
           }                                         
           /* 使用for-each遍历              
           for (Character c : map.keySet()) {                                    
               System.out.println(map.get(c));                            
               }
               */                            
           //使用迭代器和entrySet遍历              
           Iterator<Entry<Character, Integer>> iterator=map.entrySet().iterator();                            
           Integer count =Collections.max(map.values());//出现次数最多的值              
           Character character = null;
           //存放次数最多的key                            
           while(iterator.hasNext()) {                  
           Map.Entry<Character, Integer> entry=(Map.Entry<Character, Integer>)iterator.next();                                    
           System.out.println(entry.getKey()+"    "+entry.getValue());
           //得到出现次数最多的值的key                  
               if(entry.getValue().equals(count)) {
                   character=entry.getKey();                  
               }                                
           }                            
           System.out.println("出现次数最多的是:"+character+"出现次数为"+count);
     }
}
Copier après la connexion

Bien sûr, cette question peut être parcourue en utilisant keyset(), mais ce n'est pas aussi efficace que EntrySet

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal