为了账号安全,请及时绑定邮箱和手机立即绑定

【Java 数据结构及算法实战】系列 016:HJ2 计算某字符出现次数

标签:
Java 算法

 描述

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写,字符串长度小于500。

输入描述:

第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字母。

输出描述:

输出输入字符串中含有该字符的个数。

解法

该题型主要是考察字符串、哈希的操作。解法步骤如下

  • 输入一行,代表要计算的字符串,非空,长度小于500。

  • 输入的字符串转为小写

  • 构造一个哈希结构,key为字符,值为该字符的个数

  • 对输入字符串进行遍历,将每遍历一个字符,就将该字符记录到哈希中

  • 再输入一行,代表要统计的字符。

  • 输入的字符转为小写。

  • 从哈希结构取出指定字符的值

  • 输出一个整数,表示输入字符串中含有该字符的个数。


/*
* Copyright (c) waylau.com, 2022. All rights reserved.
*/

package com.waylau.nowcoder.exam.oj.huawei;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * HJ2 计算某字符出现次数. 描述:写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,
 * 然后输出输入字符串中该字符的出现次数。(不区分大小写字母) 数据范围: 1≤n≤1000
 * 输入描述:第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。 输出描述:输出输入字符串中含有该字符的个数。(不区分大小写字母)
 * 
 * @author <a href="https://waylau.com">Way Lau</a>
 * @since 2022-08-05
 */

public class HJ2CountsTheNumberOfCharacters {

	public static void main(String[] args) {
		// 输入一行,代表要计算的字符串,非空,长度小于5000。
		Scanner sc = new Scanner(System.in);

		// 全部转为小写
		String in = sc.nextLine().toLowerCase();

		// 构造一个哈希结构,key为字符,值为该字符的个数
		Map<Character, Integer> map = new HashMap<>();

		// 对输入字符串进行遍历,将每遍历一个字符,就将该字符记录到哈希中
		for (int i = 0; i < in.length(); i++) {
			char c = in.charAt(i);
			// 之前就记过,就累加个数;否则就记1
			Integer count = map.get(c);

			if (count != null) {
				count++;
			} else {
				count = 1;
			}

			map.put(c, count);
		}

		// 再输入一行,代表要统计的字符。
		// 从哈希结构取出指定字符的值
		char charIn = sc.nextLine().toLowerCase().charAt(0);

		// 输出一个整数,表示输入字符串中含有该字符的个数。
		System.out.println(map.get(charIn) == null ? 0
				: map.get(charIn));

		// 关闭资源
		sc.close();
	}
}


运行应用输出如下:

hello world

o

2

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
1.7万
获赞与收藏
2168

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消