java中scanner与hashmap_Java中HashMap的使用练习
问题:
给定任意一个字符串“today is a special day”,长度为任意,要求找出其出现次数最多的字符及计算次数。(可以用HashMap,HashSet,Collections实现)
解决:利用HashMap和HashSet解决。
代码:
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
public class HashMapDemo {
/**
* @param args
* @author Wentasy
* @since 2012年4月23日17:36:53
* 给定任意一个字符串“today is a special day”,
* 长度为任意,要求找出其出现次数最多的字符及计算次数。
* (可以用HashMap,HashSet,Collections实现)
*/
public static void main(String[] args) {
countChar();
}
public static void countChar(){
Scanner scan = new Scanner(System.in);//构造输入流
String str = "";//接受从键盘输入的字符串
System.out.println("请输入一行字符串:");
//str = scan.next();//注意:使用next方法如果你输入的字符串包括空格,则你将得到错误的结果
str = scan.nextLine();
HashMap map = new HashMap();//创建HashMap对象
for (int i = 0; i < str.length(); i++) {
Character ch = new Character(str.charAt(i));//截取第i个位置的字符
Integer val = new Integer(1);//记录出现次数的变量
Integer oldVal = map.put(ch, val);//把出现次数放到Map中
//put方法返回与 key 关联的旧值;如果 key 没有任何映射关系,则返回 null。(返回 null 还可能表示该映射之前将 null 与 key 关联。)
if (oldVal != null){
map.put(ch, oldVal + 1);//如果不为空,将加1的旧指放到Map中
}
}
System.out.println(map);//打印存放字符和出现次数的映射关系
int max = 0;//出现次数的最大值
Character ch1 = null;//记录出现次数最多的字符
Set set = new HashSet();//创建Set对象
set = map.keySet();//将Map转为Set对象
Iterator it = set.iterator();//获得Set对象的迭代器
while (it.hasNext()){
Character ch = (Character)it.next();//获取元素
Integer pos = map.get(ch).intValue();//通过Key查找Value
//逐一比较,找出现次数最多的字符和出现次数
if (pos > max){
max = pos;
ch1 = ch;
}
}
//打印结果
System.out.println("字符串" + str + "中出现最多的字符是:" + ch1 + "\n" + "出现次数为:" + max);
}
}
运行效果截图:
遇到的问题说明:
在利用Scanner接收输入的字符串时,有两种方式
str = scan.next();
str = scan.nextLine();
如果采用next方法的话,如果你输入的字符串包括空格,则你将得到错误的结果。
原因如下:
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键视为分隔符或结束符;
而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。
java中scanner与hashmap_Java中HashMap的使用练习相关推荐
- java用scanner类_java中关于scanner类的详细介绍
1.Scanner的实现步骤 第一步:在有效代码的第一行,通过import导入Scanner类!import java.util.Scanner; 第二步:通过new关键字实例化一个Scanner对象 ...
- java中scanner意思_java中Scanner s = new Scanner(System.in);分别是什么意思?
展开全部 Scanner是一个类,nextDouble()是Scanner的成员函数,System.in作为参数传递给Scanner的构造函数,使Scanner用62616964757a6869646 ...
- java 单例 缓存hashmap_java 、HashMap 和单例
前段时间在项目中遇到一个问题.当多个系统同时运行时,大部分系统能够良好运转,部分却卡死在了启动界面.以下是我解决该问题的步骤和总结: 1.复现问题.重新走了一遍出问题的过程,发现问题的确存在.说明这个 ...
- java中Scanner类中 next()与nextLine()的区别
问题:提示用户输入一个英文字符串或者要解密的字符串,然后通过扫描仪获取用户输入的字符串,经过加密或者解密后,把字符串输出. import java.util.Scanner;public class ...
- [转载] Java中Scanner用法总结
参考链接: Java之Scanner类 最近在做OJ类问题的时候,经常由于Scanner的使用造成一些细节问题导致程序不通过(最惨的就是网易笔试,由于sc死循环了也没发现,导致AC代码也不能通过... ...
- java中scanner类_Java里Scanner 类
package com.xuexi; import java.util.Scanner; public class ScannerDemo1 { //通过 Scanner 类的 nextLine() ...
- scanner 获取控制台信息_关于java.util.scanner:如何使用Java中的Scanner类从控制台读取输入?...
如何使用Scanner类从控制台读取输入? 像这样: System.out.println("Enter your username:"); Scanner = input(); ...
- Java中Scanner 的用法/ Scanner怎么使用
Java中要想输入时便要用到Scanner 首先在使用之前导入util包 要想通过控制台进行输入,首先要构造一个Scanner对象,它附属于"标准输入流 Scanner in = new S ...
- java中Scanner类用法的详解
一 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 首先要导入包 import java.util.Scanner; Sca ...
最新文章
- python语言程序设计嵩天-Python语言程序设计基础(第2版)嵩天课后答案
- Python学习之路--函数
- 字符串排序 墨迹了半天的自闭题目
- git pull忽略指定文件_Git忽略提交规则
- C++11命名空间的using说明
- c++primer 第2章 书上例子 资料截图等
- wordpress.org 删除
- Webview 非http或者https的网络请求拦截
- DELL服务器R730重装Window Server2012系统
- navicat如何创建数据库及如何导入数据库文件【初学者适用】
- 模型预测控制的缺点_一个模型预测控制(MPC)的简单实现
- 判断字符串子序列【python】
- 下载网易云音乐的MV
- android rsa加密工具类,GitHub - Lerist/encrypt: Android 加密解密工具包。
- 如何运行jnlp文件
- 聚观早报 | 苹果首款头显明年1月亮相;米哈游投资信托「打水漂」
- iOS 开发实用工具
- Angular应用的文档生成工具——Compodoc
- 【vue】滴滴cube-ui 简化安装
- Flask Web开发--3.实时SPC控制图的开发设计
热门文章
- matlab中如何表示线积分,MATLAB - 复杂的线/路径积分
- Java @SafeVarargs注解
- 如何用记事本编写运行java程序?
- Android Sdk 安装配置
- MySql 创建utf-8格式的数据库
- SQL Server常用约束表达式实例
- php 图片 byte数组,php – 将图像存储在PostgreSQL数据库的bytea字段中
- 花瓣长度和花瓣宽度散点图鸢尾花_基于python的鸢尾花简单聚类模型分析
- python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法
- ubuntu的MySQL远程数据库连接问题查找