题目描述:

输入字符串,包含数字,大小写字母,编程输出出现做多的数字的和。

思路:

1.创建输入对象
2.输入字符串
3.利用正则将字母分离出,剩余的每一个字符串即为待统计的每一个数字,存入字符串数组中

4.遍历数组,拿到字符串,存入创建的hashMap中,且键为该字符串,值为出现的次数;这里我使用的判断出现几次的技巧是借助hashSet的存储非重复元素的性质,每次拿到数组元素时同时进行存入hashSet的操作(具体代码中会有)

4.此时的hashMap中存储的即为出现的数字及其出现次数的对应键值对集合,遍历集合,找出值为最大的那个键值对,即拿到出现次数最多的数字及其出现次数

5.打印输出

具体代码:

 1 package zhangchaolun.test
 2
 3 import java.util.HashMap;
 4 import java.util.HashSet;
 5 import java.util.Scanner;
 6
 7 public class test2 {
 8     public static void main(String[] args) {
 9         Scanner sc = new Scanner(System.in);
10         System.out.println("请输入一列字符串:");
11         String s1 = sc.nextLine();
12         String regex = "[a-zA-Z]+";
13         String[] arr1 = s1.split(regex);
14
15         HashSet<String> hashSet = new HashSet<>();
16         HashMap<String, Integer> hashMap = new HashMap<>();
17       
18         for (int i = 0; i < arr1.length; i++) {
19             if (hashSet.add(arr1[i])) // 此存入方法返回布尔类型值
20                 // 能添加的元素即为第一次出现,执行存入map的操作;
21                 hashMap.put(arr1[i], 1);
22             else {
23                 int n = (int) hashMap.get(arr1[i]);//能添加则不是第一次出现,而map中也已有对应的键值对,更新其值加1即可
24                 hashMap.put(arr1[i], ++n);
25             }
26         }
27         // map里存储的是每个十进制数及其出现次数的键-值对应关系
28         findAndResult(hashMap);// 找出最大的Value
29     }
30
31     private static void findAndResult(HashMap<String, Integer> hashMap) {
32         // TODO Auto-generated method stub
33         String mostly = " ";
34         int times = 0;
35         for (String s : hashMap.keySet()) {
36             if (hashMap.get(s) > times) {
37                 times = hashMap.get(s);
38                 mostly = s;
39             }
40         }
41         // 将字符串mostly转为数字
42         int h = Integer.parseInt(mostly);
43         System.out.println("字符串中出现的最多数字是: " + h);
44         System.out.println("该数字出现的次数是: " + times);
45         System.out.println("所以出现最多次数的数字的和是: " + h * times);
46
47     }
48
49 }

总结:

考察:

1.利用正则表达式进行字符串切割,

2.怎么判断字符串出现了几次(用hashSet),也即考察hashSet的性质,add()方法

3.遍历map的操作

3.更新键值对中value的思路

我没能想到其他的技巧,局限了,有点蛮力哟,不喜勿喷。

转载于:https://www.cnblogs.com/zclun/p/9955157.html

输入字符串,包含数字,大小写字母,编程输出出现做多的数字的和相关推荐

  1. c语言随机产生大小写字母,c# 产生随机字符串,包括大小写字母和数字

    #region MyRegion //產生密碼 protected static string GetPwd() { return CreateRandomNum123(2) + CreateRand ...

  2. C语言统计一个字符串(包含空格)中字母的种类(不是个数)

    C语言统计一个字符串(包含空格)中字母的种类(不是个数) 写了一个小程序来通过输入一个字符串后,统计26个字母中出现了几种. 例如:输入juue 输入3输入abcd efg lmn输出10 思路简述 ...

  3. 7-123 空心字母金字塔 (10 分)输入一个大写的英文字母,输出空心的字母金字塔。

    7-123 空心字母金字塔 (10 分) 输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A" ...

  4. Java生成随机数:数字+大小写字母

    生成若干位的随机数 有数字+大小写字母组成 方法代码如下: /*** 随机数* @param place 定义随机数的位数*/public static String randomGen(int pl ...

  5. Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3

    题目描述: 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n ...

  6. 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字

    题目描述 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4 ...

  7. 牛客网2-给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字

    题目描述 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和:A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4.. ...

  8. python输入一个字符串、计算其中小写字符的个数_编写程序,输入一个字符串,统计其中大小写字母数字和其他符号的个数并输出,要求统计过程在函数COUNT中进行...

    答:对比ASCII码,在程序中小写字母96 答:a = "aAsmr3idd4bgs7Dlsf9eAF" 请将a字符串的数字取出,并输出成一个新的字符串. 请统计a字符串出现的每个 ...

  9. java 从控制台输入一个正整数_编程输出该正整数各位数字之和_C语言 从键盘上输入一个正整数,计算并输出该数的各位数字之和...

    点击查看C语言 从键盘上输入一个正整数,计算并输出该数的各位数字之和具体信息 答:思路:定义变量a接受键盘输入和变量sum保存a的各位数字之和,依次对a进行除10操作,并把a除10的余数加到sum中, ...

最新文章

  1. PonyAI小马智行官宣再获2.67亿美元融资,创办4年累计吸金超10亿美元
  2. app每次更新版本时调用js代码提示用户下载更新
  3. lodop指定打印机打印_GitHub - xtjatswc/formext: 基于Lodop封装的打印框架,支持表单、报表配置。...
  4. jzoj3501-消息传递【换根法,树形dp】
  5. php json 默认值,php操作JSON格式数据的实现代码
  6. 【numpy】np.random.normal()函数
  7. U-Mail邮件服务器教你反垃圾邮件新方法
  8. 转帖——精妙SQL语句
  9. tween.js 中文使用指南
  10. SLAM--DBow3
  11. 英语视听说第六版答案
  12. mysql mcafee audit_ libaudit
  13. Oracle汉字排序nls_sort
  14. java数字转为大写_Java 将数字金额转成中文大写
  15. Codeforces 1010D Mars rover
  16. Tableau实战 Tableau官网各版块访问情况(四)各网址情况分析
  17. 单片机多功能电子琴课设_基于单片机的简易电子琴课程设计.doc
  18. 42表盘直径是从哪测量_手表表盘尺寸怎么量
  19. 蓝牙卡复制html,车库蓝牙卡能复制吗
  20. 基于STM32F103C8T6的HC-06蓝牙通信

热门文章

  1. 概率论中指数分布介绍及C++11中std::exponential_distribution的使用
  2. OpenCV实现在图像中写入汉字
  3. 基于C++的OpenCV常用函数
  4. 【FFmpeg】如何通过字符串到对应的封装器,以flv为例
  5. 【opencv】ubuntu14.04上编译opencv2.4
  6. Travis CI : 最小的分布式系统(三)
  7. 取代java_如何评价 Kotlin?未来是否会取代 Java?
  8. angular蚂蚁_Angular 中后台前端解决方案 - Ng Alain 介绍
  9. 提花原理与计算机,电脑提花袜的设计原理与方法:提花女袜
  10. linux 不能运行程序代码,linux-无法在Ubuntu上运行我自己的OpenGL 3程序