任意输入一串字符串,求该字符串中字符的出现次数并打印出来,如输入“bcaba”输出:b 2 c 1 a 2

前言:其实我还是有点不懂,有点郁闷了,算了直接把代码放上去把。

方法一:

Scanner input=new Scanner(System.in);
        System.out.println("请输入一个字符");
        String str=input.next();

        char[] strChar=str.toCharArray();
        //声明集合,把之存在集合中
        Map<Character,Integer> map=new HashMap<>();

        for(int i=0;i<strChar.length;i++){
            if(map.containsKey(strChar[i])){
                map.put(strChar[i],map.get(strChar[i])+1);
            }else{
                map.put(strChar[i],1);
            }
        }

        for(Map.Entry<Character, Integer> entry: map.entrySet()){
            System.out.println(entry.getKey()+":"+entry.getValue());
        }
        input.close();

方法二:

 1 Scanner input=new Scanner(System.in);
 2         System.out.println("请输入一个字符");
 3         String str=input.next();
 4
 5
 6         //声明集合,把之存在集合中
 7         Map<Character,Integer> map=new HashMap<>();
 8
 9         for(int i=0;i<str.length();i++){
10             if(map.containsKey(str.charAt(i))){//如果此映射将一个或多个键映射到指定值,则返回 true。
11                 map.put(str.charAt(i),map.get(str.charAt(i))+1);
12             }else{
13                 map.put(str.charAt(i),1);
14             }
15         }
16
17         for(Map.Entry<Character, Integer> entry: map.entrySet()){
18             System.out.println(entry.getKey()+":"+entry.getValue());
19         }
20         input.close();

时间: 2024-10-08 18:04:49

任意输入一串字符串,求该字符串中字符的出现次数并打印出来,如输入“bcaba”输出:b 2 c 1 a 2的相关文章

技巧之C#统计字符串中字符出现的次数(转)

方法1.自定义类 class CharNum { private char c; private int num; public char C { get { return c; } } public int Num { get { return num; } set { num = value; } } public CharNum(char ch) { this.c = ch; this.num = 1; } } static void Main(string[] args) { /* */

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

问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回. 处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现次数为value,存入Map中. 源码如下: 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestCompress { 6 7 public sta

Map集合计算字符串中字符出现的次数

练习: 计算一个字符串中每个字符出现次数 分析: 1.使用Scanner获取用户输入的字符串 2.创建Map集合,key是字符串中的字符,value是字符的个数 3.遍历字符串,获取每一个字符 4.使用获取到的字符,去Map集合判断key是否存在 key存在: 通过字符(key),获取value(字符个数) value++ put(key,value)把新的value存储到Map集合中 key不存在: put(key,1) 5.遍历Map集合,输出结果 代码实现 package demo03;

记录字符串中字符出现的次数

import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set; public class Test1 { public static void main(String[] args) { // 获取一个字符串中重复字母的个数,并依次打印出来 String string = "ababcde"; Map<Character ,Integer> map =

统计字符串中字符出现的次数

var a = {}; var str = 'gouod'.split(""); str.forEach(function (v, i) { a[v] = a[v] == undefined ? 1 : a[v] + 1; }) console.info(a)

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

var str = "ProsperLee"; // || 返回第一个为真的表达式的值,若全为假则返回最后一个表达式的值 // && 返回第一个为假的表达式的值,若全为真则返回最后一个表达式的值 String.prototype.charCount = function(){ var json = {}; for (var i = 0, l = this.length; i < l; i++) { json[this[i]] = json[this[i]] + 1

【微软100题】输入一个整数,求该整数的二进制表达中有多少个1

package test; /** 整数的二进制表示中1的个数 题目:输入一个整数,求该整数的二进制表达中有多少个1. 例如输入10,由于其二进制表示为1010,有两个1,因此输出2. 分析: 方法一:把十进制转换成二进制字符数组,遍历该数组,判断1的个数. 方法二:对于一个int n, n&1的结果就是n转化成二进制数后的最后一位的结果.考察了位运算 包括微软在内的很多公司都曾采用过这道题. * @author Zealot * */ public class MS_28 { private

java编程:输入一串小写字符串,统计每个字母出现的次数

*需求:统计字符串中每个字母: * 说明:编写程序,提示用户输入一个字符串, * 然后统计字符串中每个字母出现的个数,忽略字母的大小写. * * 原理: * 1.使用String类中的toLowerCase()方法,将字符串中的大写字母转换成小写形式. * 2.构造一个具有26个int值得数组ch ,每个元素记录一个字母出现的次数. *     即,ch[0]记录a的个数,ch[1]记录b的个数. * 3.对字符中的每一个字符,判断其是否小写字母,如果是,则数组中的相应计数器加1. 第一种风格的

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。

这是华为2013的一个机试题,会好半天才想出来,用了三个for循环,可能有点繁琐,但只要慢慢看还是好理解的, 题目: 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉. 比如字符串"abacacde"过滤结果为"abcde". #include<stdio.h> #include<string.h> void main() { char a[]="aba