对于任意输入的一段字符串,读取并且计算其中所有字符出现的次数。

使用HashMap存储字符和其对应的出现的次数,输出时,对HashMap进行遍历。

难点在于对HashMap的遍历,第一次使用,也是学习了。

Main.java

package com.fuxuemingzhu.countwords.main;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner; /**
* <p>
* Title: Main
* </p>
* <p>
* Description:输入一个字符串,计算字符串中每个字符出现的次数
* </p>
*
* @author fuxuemingzhu
*
* @email fuxuemingzhu@163.com
*
* @date 2014年11月24日 下午3:29:41
*/
public class Main { public static String input; public static HashMap<String, Integer> charsCount = new HashMap<String, Integer>(); /**
* <p>
* Title: main
* </p>
* <p>
* Description:main()方法
* </p>
*
* @param args
*
*/
public static void main(String[] args) {
input();
countWords();
output();
} /**
* <p>
* Title: input
* </p>
* <p>
* Description:输入需要计算的字符串
* </p>
*
*/
public static void input() {
System.out.println("请输入需要计算的字符串:");
Scanner scanner = new Scanner(System.in);
input = scanner.nextLine();
scanner.close();
} /**
* <p>
* Title: countWords
* </p>
* <p>
* Description:用HashMap保存每个字符出现的次数
* </p>
*
*/
public static void countWords() {
for (int i = 0; i < input.length(); i++) {
String temp = input.substring(i, i + 1);
if (charsCount.containsKey(temp)) {
charsCount.put(temp, charsCount.get(temp) + 1);
} else {
charsCount.put(temp, 1);
}
}
} /**
* <p>
* Title: output
* </p>
* <p>
* Description:将HashMap中的每一对元素输出
* </p>
*
*/
public static void output() {
System.out.println("您输入的字符串为:" + input + "\n其中");
for (Iterator<String> iterator = charsCount.keySet().iterator(); iterator
.hasNext();) {
String words = (String) iterator.next();
int num = charsCount.get(words);
System.out.println("'" + words + "'出现了" + num + "次");
} }
}

附运行截图。

java源码——统计字符串中字符出现的次数的更多相关文章

  1. String/StringBuilder 类 统计字符串中字符出现的次数

    1.1. 训练描述:[方法.String类] 一.需求说明:定义如下字符串: String str = “javajfiewjavajfiowfjavagkljjava”; 二.请分别定义方法统计出: ...

  2. 统计字符串中字符出现的次数(||和&&的区别)

    var str = "ProsperLee"; // || 返回第一个为真的表达式的值,若全为假则返回最后一个表达式的值 // && 返回第一个为假的表达式的值,若 ...

  3. js 统计字符串中字符出现的次数

    var str='abbcccdddd';var obj={};for(var i=0;i<str.length;i++){ var key=str.charAt(i); if(obj[key] ...

  4. java怎么实现统计一个字符串中字符出现的次数

    问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回. 处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现 ...

  5. 2018-09-24 Java源码英翻中网页演示

    在线演示地址: 源代码翻译 两部分如下. 独立的Java代码翻译库 续前文代码翻译尝试-使用Roaster解析和生成Java源码 源码库: program-in-chinese/java_code_t ...

  6. 2018-10-08 Java源码英翻中进展-内测上线

    创建了一个子域名: http://translate.codeinchinese.com/ 欢迎试用, 如有建议/发现问题欢迎在此拍砖: program-in-chinese/code_transla ...

  7. 设在起始地址为STRING的存储空间存放了一个字符串(该串已存放在内存中,无需输入,且串长不超过99),统计字符串中字符“A”的个数,并将结果显示在屏幕上。

    问题 设在起始地址为STRING的存储空间存放了一个字符串(该串已存放在内存中,无需输入,且串长不超过99),统计字符串中字符"A"的个数,并将结果显示在屏幕上. 代码 data ...

  8. 2018-09-15 Java源码英翻中库以及服务原型

    服务很简单, 只为演示这个库, 源码在: program-in-chinese/code_translator_service. 在Postman测试效果: 演示服务地址: 74.91.17.250: ...

  9. c 统计字符串中字符出现的个数

    1.单纯用数组来解题 思路:从左往右循环,每次碰到一个字符就和左边的字符串比较,如果有相同的就右移,如果没有找到相同的就从这个位置向右统计个数并输出. #include<stdio.h> ...

随机推荐

  1. 【豆科基因组】鹰嘴豆Chickpea (Cicer arietinum L.)429个自然群体重测序2019NG

    目录 一.来源 二.结果 材料测序.变异检测.群体结构和LD衰减 驯化后经历选择的候选基因组区域 起源中心.迁移路线和多样性 GWAS 一.来源 Resequencing of 429 chickpe ...

  2. PHP安装PDO_MySQL模块

    下载pdo_mysql扩展 wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz 解压压缩包 tar -zxvf PDO_MYSQL-1.0.2.tgz 执 ...

  3. 睡眠或者重启windows,无法ssh连接或者pingVMware的虚机

    睡眠后无法直接ssh重连VMware主机问题 这个问题我在win8上出现过,win10看了下同事可以正常连,不知道其他有没有问题. 解决方法: 1.关闭vmnet8和vmnet0里面的 npcap 功 ...

  4. Linux关机/重启/用户切换/注销

    目录 1. 关机/重启命令 2. 用户切换/注销 2.1 基本说明 2.2 切换用户 2.3 注销用户 1. 关机/重启命令 # shutdown命令 shutdown -h now # 立即关机 s ...

  5. 简单mvc框架核心笔记

    简单mvc框架核心笔记 看了thinkphp5的源码,模仿写了一个简单的框架,有一些心得笔记,记录一下 1.目录结构 比较简单,没有tp那么复杂,只是把需要的核心类写了一些. 核心类库放在mykj里, ...

  6. java中接口可以继承接口

    今天阅读别人的代码才发现,接口是可以继承接口的 一个类只能extends一个父类,但可以implements多个接口. 一个接口则可以同时extends多个接口,却不能implements任何接口. ...

  7. ysoserial-CommonsBeanutils1的shiro无依赖链改造

    ysoserial-CommonsBeanutils1的shiro无依赖链改造 一.CB1利用链分析 此条利用链需要配合Commons-Beanutils组件来进行利用,在shiro中是自带此组件的. ...

  8. javaSE高级篇7 — 设计原则和设计模式 — 设计模式慢慢更( 这是思想层次篇 )

    1.什么是设计原则? 设计原则就是面向对象的原则嘛,即:OOP原则 换句话说:就是为了处理类与类之间的关系( 包括接口.类中的方法 ) 2.OOP设计原则有哪些? 1).开闭原则:就是指对拓展开放.对 ...

  9. nodejs-Path模块

    JavaScript 标准参考教程(alpha) 草稿二:Node.js Path模块 GitHub TOP Path模块 来自<JavaScript 标准参考教程(alpha)>,by ...

  10. 使用WtmPlus低代码平台提高生产力

    低代码平台的概念很火爆,产品也是鱼龙混杂. 对于开发人员来说,在使用绝大部分低代码平台的时候都会遇到一个致命的问题:我在上面做的项目无法得到源码,完全黑盒.一旦我的需求平台满足不了,那就是无解.   ...