ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HJ102字符统计

2021-11-16 14:00:29  阅读:128  来源: 互联网

标签:字符 Scanner int sc HJ102 new public 统计


 1 /**
 2  * @author: yekai  <br/>
 3  * Date: 2021/11/15:22:01  <br/>
 4  * Description:HJ102字符统计
 5  * 输入描述:
 6  * 一个只包含小写英文字母和数字的字符串。
 7  *
 8  * 输出描述:
 9  * 一个字符串,为不同字母出现次数的降序表示。若出现次数相同,则按ASCII码的升序输出。
10  *
11  */
12 import java.util.*;
13 
14 public class Main{
15     public static void main(String[] args){
16         Scanner sc = new Scanner(System.in);
17         while(sc.hasNext()){
18             String s = sc.nextLine();
19             //统计字符
20             int[] arr = new int[36];
21             for(int i=0; i<s.length(); i++){
22                 char c=s.charAt(i);
23                 if(c>='a' &&c<='z'){//字母
24                     arr[c-'a']++;
25                 }else{//数字
26                     arr[c-'0'+26]++;
27                 }
28             }
29             //统计结果存入List集合
30             List<Node> list = new ArrayList<>();
31             for(int i=0; i<36; i++){
32                 if(arr[i]!=0){
33                     if(i<26){//字母
34                         list.add(new Node((char)('a'+i), arr[i]));
35                     }else{//数字
36                         list.add(new Node((char)('0'+i-26), arr[i]));
37                     }
38                 }
39             }
40             //排序
41             Collections.sort(list, new Comparator<Node>(){
42                 public int compare(Node a, Node b){
43                     if(a.v!=b.v){//根据值排序
44                         return b.v-a.v;
45                     }else{//值相等根据ASCII码排序
46                         return a.k-b.k;
47                     }
48                 }
49             });
50             //输出结果
51             for(int i=0; i<list.size(); i++){
52                 System.out.print(list.get(i).k);
53             }
54             System.out.println();
55         }
56     }
57 }
58 
59 class Node{
60     char k;
61     int v;
62 
63     public Node(char k, int v){
64         this.k=k;
65         this.v=v;
66     }
67 }

 

标签:字符,Scanner,int,sc,HJ102,new,public,统计
来源: https://www.cnblogs.com/yekaiit/p/15560919.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有